华为p7l09 sd卡刷机包刷机卡死了怎么办

AES加密:相同密码key,同一个明文居然可以产生多个不同密文?
20z1z2z3z4]
发布时间: 16:47:51
编辑:www.fx114.net 我要评论
本篇文章主要介绍了"AES加密:相同密码key,同一个明文居然可以产生多个不同密文?
20z1z2z3z4]",主要涉及到AES加密:相同密码key,同一个明文居然可以产生多个不同密文?
20z1z2z3z4]方面的内容,对于AES加密:相同密码key,同一个明文居然可以产生多个不同密文?
20z1z2z3z4]感兴趣的同学可以参考一下。
小弟正在学习AES加密解密。我使用自写的加密程序(下称A程序)和一个下载的加密程序(B程序),当设置key相同时,发现同一个明文加密后得到不同的密文。不过,不同的密文解密时都能得到原来的明文。A程序具体设置是:
key="aass";
明文="scdn";
A程序加密后密文="9F8184FCCC0CDB15F54D75";
B程序加密后密文="308D06A06DC98A9B30E8";
B密文用B程序解密得到“csdn”,A密文用B程序解密也得到“csdn”。
请问:AES加密,明文和密文不是一一对应的吗?这是AES(rijndael)就是这样设计的还是我的程序有错?或者还有什么参数导致了同样明文得到不同密文?应该是加密算法不完全相同,估计是不同的变种吧.我刚才更近一步测试,完全在自写程序中测试,输出密文仍然是多种多样无穷无尽的,但是都可以解密为原文。
加密程序倍设计为一个类,类实例化后连续执行两次。key为“aass0”,明文为“csdn”,反复执行加密,得出以下密文:
EB48DE295AAEDE
877253BEFADF415D
470A2FEBAAC28
7D0AD2BD85FAAE5AE761119
DB2CD43C0AA9C484D2A0864
823FAC7EFE5D
7D0AD2BD85FAAE5AE761119
2A4C126EF652A3FD325F21AF4FA78030
若需要还可以更多(注意有时会得到相同的)。用B程序加密得到密文:
CBF136F15C8A816C23474
用B程序解密,设置key为“aass0”,全部都可以解密为“csdn”。
我本来打算在数据库中保存加密后的密文密码,用户登录时对输入的明文密码加密,然后直接比较加密后的密码和数据库中的密码,实现验证。看来这个设计是个灾难?有对AES加密了解的朋友请指点一下,谢谢!用MD5吧AES没有这种情况,&相同的(明文,密钥,初始向量,加密模式)下得到的结果是一样的...
AES是分组加密的,&明文要填充到16字节的倍数,&KEY为16/24/32字节,&不知道你用的是什么填充方式,&如果填充随机数则会出现你这种情况&...我估计造成这种差异不是AES算法的问题,
而是不同程序将“字符”与“大整数”相互转换存在差异造成的,
但只要它是合理的,就是自洽的,即加密后再解密可还原。NIST给的调试数据:
plain:&6BC1BEE2&2E409F96&E93D7E11&7393172A
key:&2B7E1516&28AED2A6&ABFF3C
cipher:&3AD77BB4&0D7A3660&A89ECAF3&2466EF97引用&6&楼&sining520&的回复:NIST给的调试数据:&
plain:&6BC1BEE2&2E409F96&E93D7E11&7393172A&
key:&2B7E1516&28AED2A6&ABFF3C&
cipher:&3AD77BB4&0D7A3660&A89ECAF3&2466EF97
完了!我无法测得上述结果(去除了空格)。可否给出NIST的连接?引用&5&楼&gxqcn&的回复:我估计造成这种差异不是AES算法的问题,&
而是不同程序将“字符”与“大整数”相互转换存在差异造成的,&
但只要它是合理的,就是自洽的,即加密后再解密可还原。
看一下加密大文件时文件大小会不会不同楼主,“完了!我无法测得上述结果(去除了空格)。可否给出NIST的连接?”上面这个测试,里面的数据是16进制的,不是去掉空格的字符串!!!
你的AES和别的AES同样明文key,得出不同密文,是正常的:&1)&AES可以选择不同长度的key(128bit、256bit)&2)&AES里面本身有不同的改编版,比如我还没细分析过的一个QuickAES版本
你的每次密文结果不一样可能是对AES的改编了,比如带了HASH串做新key,或者最大的可能是你的程序buffer的bug:
每次你输入key前,没有清空,而残留了上次key的尾巴部分,加密完后再输正确key当时还能解密。故意输错个长的key后,再用正确的key就无法解密成功,切记![Quote=引用楼主&z1z2z3z4&的回复:]
小弟正在学习AES加密解密。我使用自写的加密程序(下称A程序)和一个下载的加密程序(B程序),当设置key相同时,发现同一个明文加密后得到不同的密文。不过,不同的密文解密时都能得到原来的明文。A程序具体设置是:
&key="aass";
&明文="scdn";
&A程序加密后密文="9F8184FCCC0CDB15F54D75";
&B程序加密后密文="308D06A06DC98A9B30E8";
&B密文用B程序解密得到“csdn”,A密文用B程序解密也得到“csdn”。
&请问:AES加密,明文和密文不是一一对应的吗?这是AES(rijndael)就是这样设计的还是我的程序有错?或者还有什么参数导致了同样明文得到不同密文?
加密后密文不同是因为不同的人写的程序对消息和密钥的填充是不同的,所以导致加密结果不同。还有明文和密文是一一对应的,但是这里的一一对应实在同一个程序的前提下。明显是两个程序对于KEY的填充都是一样的,而对于明文的填充不同,B是常量填充,A是随机值填充引用&11&楼&wolfkain&的回复:明显是两个程序对于KEY的填充都是一样的,而对于明文的填充不同,B是常量填充,A是随机值填充
AES是16/24/32字节分组。
你只给了5字节明文(包括\0),至少需要填11字节,这11字节AB程序可能不一致。&但不管填充是什么,
加密前和解密后的后16字节都一样的,前5字节自然一样的。&&
建议加密分组填充部分主动填充,以保证不同环境下一致。引用&11&楼&wolfkain&的回复:明显是两个程序对于KEY的填充都是一样的,而对于明文的填充不同,B是常量填充,A是随机值填充谢谢有可能是加密模式不同学习中。。。马克。。。。。。我估计是因为明文的填充方式不一样。
AES一个明文分组是128bit&
所以你输入aass0&&明文会填充成128bit再加密
有的填充标准是缺几个字符,再把后面的都填充成“几”,
比如:aass0,缺11个字符,就把后面的字符都填充成ASCII码11,
这样的加密结果就只会有一个
而有的填充方式是:缺几个字符,就把最后一个字符填充成“几”,而中间的则产生随机数填充,
这样的加密结果就会有多个。
而解密时是根据最后一个字符的ASCII码来确定删除解密后的明文的最后几个字符AES&算法使用同一个key&加密同一个明文得到不同密文很正常。
密文不同主要有以下原因:
1.加密key的比特数不同。有(128,192,&256),加密key比特数不一样,密文就不可能一样。
2.明文填充模式不一样。因为AES是分组的,每32字节一组,不满32字节的明文要填充到32字节。不同的填充方法肯定会造成密文的不一致。
3.使用的AES加密模式不一样,有四种模式(ECB、CBC、CFB、OFB)&,不同模式加密得到的密文显然不会一样引用&18&楼&pj220&的回复:AES&算法使用同一个key&加密同一个明文得到不同密文很正常。
密文不同主要有以下原因:
1.加密key的比特数不同。有(128,192,&256),加密key比特数不一样,密文就不可能一样。
2.明文填充模式不一样。因为AES是分组的,每32字节一组,不满32字节的明文要填充到32字节。不同的填充方法肯定会造成密文的不一致。
3.使用的AES加密模式不一样,有四种模式(ECB、CB……
4.还有一个就是是否使用初始化向量F&F&9&A&3&F&0&3&-&5&6&E&F&-&4&6&1&3&-&B&D&D&5&-&5&A&4&1&C&1&D&0&7&2&4&6密码是多少&用什么工具能还原填充方式不同Mark,我也遇到了同样的问题,每次编译器一编译出来新的程序,输出的密文就和前面编译出来的结果不一样。可能确实是填充的随机数据的缘故吧。不过只要能正常解密,那也是没问题的,毕竟每个文件也有自己的“指纹”嘛,可以提高安全性。AES怎么设置密钥?
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:继续AES的有关问题,只能对最长16位的字符串进行加密 - C语言当前位置:& &&&继续AES的有关问题,只能对最长16位的字符串进行加密继续AES的有关问题,只能对最长16位的字符串进行加密&&网友分享于:&&浏览:170次继续AES的问题,只能对最长16位的字符串进行加密?用AES加密,不管明文多长,密文只能获得16位的长度。这是AES的限制么?如何能够进行不限长度的加密?谢谢------解决方案--------------------AES没有长度限制的。
------解决方案--------------------用md5,可以随便设置长度
------解决方案--------------------AES是块加密, 你16字节一次不是就想加密多长就加密多长么...
这样子是ECB模式不是很安全, 其他的还有CBC,OFB,CFB模式好用些... 对一般的明文, 还涉及不少填充算法把长度填充到16字节的整数倍, 这也有不少的标准...
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有

我要回帖

更多关于 华为p7电信版刷机 的文章

 

随机推荐