gpt4 book ai didi

java - 如何在java中创建指定字符集和指定长度的md5字符串的md5?

转载 作者:行者123 更新时间:2023-12-02 00:07:17 27 4
gpt4 key购买 nike

有什么方法可以为给定的字符串创建 md5,md5 应该只包含指定的字符(例如字母数字),而且 md5 的长度应该由编码器使用 java 定义。

示例:

假设这个问题的文本是一个用于制作 md5 的字符串,它有“//:\#$%^&*!()_-=+|”在此测试开始和结束时的这些字符我需要有一个 md5 之类的。

预期输出:

sdki544k54353453(仅包含字母数字的 16 长度字符串)

最佳答案

it there any way to create a md5 for given string

第一个问题:您需要定义要使用哪种编码将字符串转换为字节。 MD5 适用于二进制数据,而不是文本。因此,您需要将字符串转换为字节,然后对其进行哈希处理,这将返回 16 个字节作为哈希值。

that md5 should have only specified characters say only alphanumeric

嗯,如果您想节省一点空间,最容易以十六进制或 base32 完成。

also the length of md5 should be coder defined using java

二进制散列数据的大小是固定的 - MD5始终生成 128 位(16 字节)。如果您想减少长度,您可能需要截断数据(这会使哈希效率降低)。当然,如果您想要的长度比实际需要的长度长,您只需要填充它即可。

16 字节将以十六进制编码为 32 个字符,或以 base32 编码为 26 个字符。 Base64 只需要 22 个字符,但这需要至少两个非字母数字字符。 (数字 + a-z + A-Z 给出 62 个字符;base64 需要 64 个字符 - 通常加上一个填充字符,但如果您事先知道长度,则可以省略。)

如果您能更详细地解释您的要求,我们也许能够提供更多帮助 - 但从根本上说,MD5 是一个固定大小的哈希值。

关于java - 如何在java中创建指定字符集和指定长度的md5字符串的md5?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13578998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com