是否存在在C#中产生64位散列大小的散列算法?
发布时间:2020-12-16 01:39:38 所属栏目:百科 来源:网络整理
导读:我需要根据可变长度字符串生成一个Hash值,我可以将其存储在不超过16的字段中(由于供应商要求). 我正在连接几个正在通过C#脚本转换传递的字符串,以便计算哈希值.我受到供应商文件规范的限制,因为哈希的输出不能超过16. 有没有人有什么建议?作为示例,MD5算法
我需要根据可变长度字符串生成一个Hash值,我可以将其存储在不超过16的字段中(由于供应商要求).
我正在连接几个正在通过C#脚本转换传递的字符串,以便计算哈希值.我受到供应商文件规范的限制,因为哈希的输出不能超过16. 有没有人有什么建议?作为示例,MD5算法的字符串转换具有32的长度. 解决方法
加密函数的设计使得您可以将输出截断为某种大小,并且截断的散列函数仍然是安全的加密散列函数.例如,如果将SHA-512输出的前128位(16字节)应用于某些输入,则前128位是与任何其他128位加密哈希一样强的加密哈希.
解决方案是选择一些加密哈希函数 – SHA-256,SHA-384和SHA-512是不错的选择 – 和truncate the output到128位(16字节). – 编辑 – 基于注释,当编码为ASCII时,哈希值必须符合16个ASCI字符,解决方案是 >首先,选择一些加密哈希函数(SHA-2系列包括SHA-256,SHA-384和SHA-512)>然后,将所选散列函数的输出截断为96位(12字节) – 也就是说,保留散列函数输出的前12个字节并丢弃剩余的字节>然后,对截断的输出进行base-64编码为16个ASCII字符(128位)>有效地产生96位强加密哈希. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |