cfi*_*her 3 encryption algorithm hash string-hashing
我需要将消息散列为30个字符串.这种用法的最佳和最安全的哈希函数是什么?
三十个字符(字节)是240位.
如果你不能移动目标帖子以允许32个字符,那么你可能最终会使用SHA-1,它生成160位或20个字节.Base-64编码时,将为28个字符.如果使用十六进制编码,则它将是40个字符,名义上超出范围.使用32个字符时,可以使用SHA-256,但Base-64编码会增加该大小(至44个字符),而十六进制编码会将大小增加到64个字符.
如果必须使用十六进制编码并且可以使用32字节,则可以使用MD5(生成128位),但不建议用于任何新系统.使用Base-64编码,MD5使用24个字符.否则,您使用的是非常安全的算法 - 根本不推荐.
只需使用SHA1并修剪为30个字符.
import hashlib
hash = hashlib.sha1("your message").hexdigest()[:30]
Run Code Online (Sandbox Code Playgroud)
已经证明,从密码安全哈希函数(如SHA1)中删除字符对其安全性的影响可以忽略不计(但现在无法找到引用)