如何将任意长度字符串加密为32位字符串并可解密成原文??

fbchenyong 2006-03-08 08:43:11
如题,如何将任意长度字符串加密为32位字符串并可解密成原文??原字符串长度大于32,要求将原字符串加密成32位密文并可解密成原文?
...全文
2174 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
madyak 2006-04-21
  • 打赏
  • 举报
回复
有这等事?一张软盘可以闯天下了,什么winrar,winzip,都靠边站。
aiirii 2006-04-21
  • 打赏
  • 举报
回复
压缩软件?? 将一张光盘700M 加密为32位字符串
并可解密成原文 ??
卡卡西 2006-04-21
  • 打赏
  • 举报
回复
我想楼主的意思应是任意长度小于32的字符串加密成32长度的字符串吧!
sgwk 2006-04-02
  • 打赏
  • 举报
回复
引用的:大家看看。



㈢单向散列函数算法(hash)

单向散列函数H(M)作用于任意长度的消息M,他返回一固定长度的散列值h:
h=H(M)
其中h的长度为m。
输入为任意长度且输出为固定长度的函数有很多种,但单向散列函数具有使其单向的如下特征:
* 给定M,很容易计算h。
* 给定h,根据H(M)=h计算M很难。
* 给定M,要找到另一条消息M'并满足H(M)=H(M')很难。

这就是定义,简单的说就是他能把任意长度的消息变成一个固定长度的散列值(是散列值而不是字符串)但是你从散列值很难推出他的消息。而且不存在两个不同的消息有相同的散列值的情况。

由定义和这些特性我们可以得出单项散列算法,是不能单独用于共享软件加密,这样会非常容易被破解或者作者本人就很难得到注册码。所以单向散列函数算法,在通讯中应用于数字签名,消息的完整性检测,消息起源的验证等,当它应用于共享软件加密就只能作为加密的一个中间步骤。
一般情况下,破解者是不需要了解hash函数的具体内容,只要能鉴别是何种算法就行了。
常见的单向散列函数算法有:
HAVAL, MD2, MD4, MD5, PanamaHash, RIPEMD160, SHA, SHA256, SHA384, SHA512, Tiger

“winroot”的各种散列值

MD2_128 : EFCB691878944AC42E1FD7F044FAF8D0
MD4_128 : D3E81CD9EF4A4854017B3E37E0D7E545
MD5_128 : F366A5751A638525F5226D25D446B018
SHA160 : 860A3EA72714EFFBED4D35218D3C3FD662B4113B
SHA256 : DE0B5A0FC4BADDB8BED3859FE024562E79B6D05E1ACEF7644E361574C223CF08
SHA384 : 54FAD90387747873ED77F7029A2C458C25AF0C1D74EC7EC8BFC3F91A0A03B42E78F39E345AB499FC659054C8C5ACDA05
SHA512 : 7387E2037B225651F2C859BBC09C2C43E1F8F081E75CDDFDAC6DB16792F7008C0BD15B9E2B715004D2EBC6E5A5E8A62394EC7B76439578EE4814641B395820C6
RIPEMD160: 1FE6301049FAF5A3221BBDCB802ACCE3E609EC37
Tiger_192: 14BEEAD7C220E46F49BDE02DDB17D23BA315A012309772D5
PanamaHash_256: A5A9DE1855766746B9AFCA26D3C08C8DAD2E51E0EBF5F8BB5059CD084A8000B9
HAVAL(128bit,pass=3): C004F3C26B8BA5390C036654002BFC5B
HAVAL(160bit,pass=3): 624D82E66D1C496A8DBC385B3732857821B2E6E0
HAVAL(192bit,pass=3): E9C02C115CF4026E13FE204601FB4E9E2FB56A715B7E7207
HAVAL(224bit,pass=3): 416ADBD1C21472D79856B77E7FE2C31F21332C68EFE70F1A2DD16730
HAVAL(256bit,pass=3): C59A131E3C8A0519B248AA7D70CD6153F64F44B62337471BAE01ACE985468A56
HAVAL(128bit,pass=4): A53DAB690512E28AB714F76A25A1FCC1
HAVAL(160bit,pass=4): 63C9A7871EDFAE9505A5C34F4309972431F09EB6
HAVAL(192bit,pass=4): A4FA8440A261995965BD3DFB27B03E6FD4F43462094B0D8A
HAVAL(224bit,pass=4): DC6E5EB71A02637A7A5D53BC84DD60904F136989BD73DFAF3CF88E2C
HAVAL(256bit,pass=4): 5070D8015AA9A849A6DF4F7FF8F154A3F626B841720AF12D2DB866E782D6AF24
HAVAL(128bit,pass=5): 2D0B887087B7AB076FA34334D553C532
HAVAL(160bit,pass=5): 028EC2A53F09CF0C527F176D73C7F8EC2FFD22FF
HAVAL(192bit,pass=5): A5320BDB1771C4872A4DAC85DF49DC41D01F513EF6A393BF
HAVAL(224bit,pass=5): 8B687C32D71699ED80F886BA7DB37F8B1BEFDDA027111B7A73F92442
HAVAL(256bit,pass=5): EA2D86A050C2707FCA1AAF5B42D3B4C632A6372ECA9877C203365B59B46950E4
sgwk 2006-04-01
  • 打赏
  • 举报
回复
关注啊。我也想要这样的。
belllab 2006-03-14
  • 打赏
  • 举报
回复
同时,硬盘、光盘厂家要倒闭了。
belllab 2006-03-14
  • 打赏
  • 举报
回复
能实现的人得诺贝尔都够了,再卖专利,到时肯定比盖茨都有钱。
yyfhz 2006-03-14
  • 打赏
  • 举报
回复
现在的年轻人啊...
belllab 2006-03-14
  • 打赏
  • 举报
回复
楼上的:这个方法从原理是行得通,但如果要用数字把这个位置描述出来的话,应该是个分数,我想只用32位就把这个分数表达出来的话......有点困难,特殊情况除外
yyfhz 2006-03-14
  • 打赏
  • 举报
回复
记得以前看到过这样的一个故事,讲的是如何在一根棒子上记录下任意多的信息的方法。
道理是这样的:
1. 所有的信息最后都可以转换成数字。
2. 在棒子上找一个可以代表这个数字的地方,画一道痕迹。
然后...没有了。
不过这只是在理论上可行。由于组成棒子的原子是有大小的,所以很难足够精确的把这个痕迹可下来(虽然从数学的角度来讲是存在这样一个点的)。
allenj0928 2006-03-13
  • 打赏
  • 举报
回复
hehe
yrb 2006-03-09
  • 打赏
  • 举报
回复
to:gzmhero(hihihi) ( ) 信誉:110
和楼主比,你的胆子太小了,应该是至少80G的串给他压缩到32位。
yrb 2006-03-09
  • 打赏
  • 举报
回复
人有多大胆,地有多大产。
小子,佩服啊。
gzmhero 2006-03-09
  • 打赏
  • 举报
回复
好好想想,可能吗?

如果一个1M的文件,加密成32个字符,你怎样还原啊。
cuteant 2006-03-09
  • 打赏
  • 举报
回复
您这要求也太过分了点吧

照这样说起来还要硬盘做什么呢?随便你多大的东西我都压成32位数据就可以了。
雷布斯尼亚 2006-03-09
  • 打赏
  • 举报
回复
别妄想了,做不到的

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧