java中,用不定长字符串生成定长字符串,要求可逆

如题,其实就是类似MD5的双向算法:我想要将任意一个不定长的字符串成生一个定长(如36位)的字符串,算法要求一一对应且可逆,即可以用定长字符串通过算法逆向生成原来的字符串... 如题,其实就是类似MD5的双向算法:
我想要将任意一个不定长的字符串成生一个定长(如36位)的字符串,算法要求一一对应且可逆,即可以用定长字符串通过算法逆向生成原来的字符串。MD5是单向的,无法逆向生成啊
展开
 我来答
曾经有个怪叔叔
推荐于2018-05-04 · TA获得超过534个赞
知道小有建树答主
回答量:369
采纳率:100%
帮助的人:363万
展开全部
你说的这个事情是不可能完成的,谢谢
简单的抽屉原理就能说明呀
如果 被转换的 字符串的长度为a,转换后的长度为b
那么由字符的范围c可知,a能表示的各种组合为 c的a次方,b能表示的各种组合为c的b次方

当 a>b 的时候,将所有可能出现的字符串都进行转化,无论转换的方式为什么
那么必然有超过2个源字符串指向了同一个目标,那么目标还原的时候就不知道是哪一个了

所以说 MD5本身不是加密算法,是签名算法!!这个很重要!
希望你看懂了……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式