为了账号安全,请及时绑定邮箱和手机立即绑定

如何将一个很长的String变短,再根据短的String还原?

如何将一个很长的String变短,再根据短的String还原?

米琪卡哇伊 2019-03-01 10:44:07
1.有一个很长的字符串(长度大概为1000),现需要转化为一个短的长度为12的字符串 2.在另一个项目中获取到这个短的字符串以后,去解析获取到原字符串 这有点类似于对字符串的加密与解密。 尝试过MD5,但没有办法解密得到原字符串。 尝试过des,但是加密后的字符串不符合要求,长度太长 所以是否有一种其他的算法,可以解决这个问题。并不一定使用加密解密,我只是想把字符串变短,然后在另外一个项目获得这个短的字符串,再还原回去
查看完整描述

5 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

长度1000的字符串压缩到长度12,做不到吧。
参考下短网址的做法吧

查看完整回答
反对 回复 2019-03-01
?
RISEBY

TA贡献1856条经验 获得超5个赞

那肯定是压缩算法啦
你看一下zip的算法,或者7-zip,有没有api提供

查看完整回答
反对 回复 2019-03-01
?
皈依舞

TA贡献1851条经验 获得超3个赞

我觉得这个是完全不可能的,MD5也只是一个特征算法,我们觉得他不会有重复不代表真的不会重复,MD5是32位也就是最多有36的32次方种组合,但是如果有一个长度为33的字符串由和MD5相同的字符组成,那他就有36的33次方种组合,必然是大于MD5的组合数的,把长度为33的字符串都MD5一次,就必然得出会有重复的MD5出现,所以说MD5是必然会对应多个不同的字符串的,只是概率太小我们就假设这是不存在的,如果要进行反运算,他就可能得出多个不同的数据,这么说你明白吗,他是不可能进行反运算的,所以MD5一般只是来比较两个值或者文件是否相同或者被篡改,并不能作为加密解密的技术。

查看完整回答
反对 回复 2019-03-01
  • 5 回答
  • 0 关注
  • 7082 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信