【问题标题】:What character set do hash functions (eg. MD5, SHA) use...散列函数(例如 MD5、SHA)使用什么字符集...
【发布时间】:2017-10-12 21:38:48
【问题描述】:

...我想问一下它是怎么回事,希望不要问一个已经问过的问题(我在互联网上搜索了一个星期,没有找到它...我知道它隐藏在某个地方那些长书...所以如果它在这里,请引导我到线程,ty)...

...我想知道什么字符基... ascii,扩展 ascii ...因为如果我尝试编码例如 char alt 444 (╝) 它会对其进行编码...但是必须有一个限制,可以使用多少个无关字符...因为否则哈希不可能是唯一的,对吧?而且很多使用这些算法的网站只让你使用base64字符池……我猜……请帮忙……谢谢

【问题讨论】:

    标签: hash base64 ascii md5 sha


    【解决方案1】:

    哈希算法采用一堆字节,计算哈希并返回预定义的字节数。因此,输入是短编码文本还是大型二进制文件对他们来说并不重要。

    这取决于哈希函数和编程环境的实现,字符串如何转换为字节数组。只要始终以相同的方式完成,哈希值就具有可比性。如果您需要跨平台哈希,最好先将字符串转换为字节数组(最好是 UTF-8 编码),然后将其提供给哈希。

    输出通常是哈希的十六进制表示,但有时您也可以请求二进制输出。

    SHA-256 示例

    SHA256("hello") = "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
    
    • 返回与 256 位相同的 32 个字节,因此名称为 SHA-256。
    • 这 32 个字节是十六进制编码的,每个字节表示为带有两个字符的十六进制数字(2c 代表一个字节,数字为 44)。

    【讨论】:

    • 好的,我明白了,你必须知道用于编码的字符池,在这种情况下是 UTF-8...谢谢
    猜你喜欢
    • 2012-04-19
    • 2011-05-18
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-22
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多