tir*_*ing 20 php encryption variables md5 cryptography
出于各种愚蠢的原因,我们发布到外部服务器的给定表单变量的最大长度为12个字符.
我想用md5模糊这个值,但很明显有12个字符不起作用.是否有一个已经制作的PHP函数的密码,这将导致12个字符或更少的字符?
密码的安全性和完整性在这里并不是非常重要.我的最后一招是编写一个函数,将每个字母向上或向下移动一个ascii值x.所以我们的目标不是让它从密码学专家那里模糊不清,而只是不以纯文本形式发布它,这样看着它的非技术工作者就不会知道它是什么.
谢谢你的建议.
Nik*_*kiC 17
这是对这个答案的补充.
答案建议从md5的32个字符表示中取出前12个字符.因此,信息的20个字符将会丢失-这将导致的方式更可能的冲突.
您可以通过获取16个字符表示的前12个字符(原始表单)来减少信息丢失:
substr(md5($string, true), 0, 12);
Run Code Online (Sandbox Code Playgroud)
这将保留75%的数据,而使用32字符形式仅保留37.5%的数据.
小智 16
也许这会帮助您生成一个12字符串,您可以在URL中传递,而不会增加冲突的风险
substr(base_convert(md5($string), 16,32), 0, 12);
Run Code Online (Sandbox Code Playgroud)
如果您只需要哈希,您仍然可以使用md5哈希中的前12个字符.
substr(md5($yourString), 0, 12);
Run Code Online (Sandbox Code Playgroud)