1.有一个很长的字符串(长度大概为1000),现需要转化为一个短的长度为12的字符串
2.在另一个项目中获取到这个短的字符串以后,去解析获取到原字符串
这有点类似于对字符串的加密与解密。
尝试过MD5,但没有办法解密得到原字符串。
尝试过des,但是加密后的字符串不符合要求,长度太长
所以是否有一种其他的算法,可以解决这个问题。并不一定使用加密解密,我只是想把字符串变短,然后在另外一个项目获得这个短的字符串,再还原回去
5 回答
皈依舞
TA贡献1851条经验 获得超3个赞
我觉得这个是完全不可能的,MD5也只是一个特征算法,我们觉得他不会有重复不代表真的不会重复,MD5是32位也就是最多有36的32次方种组合,但是如果有一个长度为33的字符串由和MD5相同的字符组成,那他就有36的33次方种组合,必然是大于MD5的组合数的,把长度为33的字符串都MD5一次,就必然得出会有重复的MD5出现,所以说MD5是必然会对应多个不同的字符串的,只是概率太小我们就假设这是不存在的,如果要进行反运算,他就可能得出多个不同的数据,这么说你明白吗,他是不可能进行反运算的,所以MD5一般只是来比较两个值或者文件是否相同或者被篡改,并不能作为加密解密的技术。
添加回答
举报
0/150
提交
取消