java和C#经过3des加密后的结果不同? 整了几天了,搞不定。java用3DES加密后和C#经过3DES加密后的结果不同?是什么原因啊?有没有给个代码啊?java的!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 密钥一样吗?明文确定完全一致么?包括字符的编码。偶以前也用过3DES,C++加密,JAVA解密,没发现什么不对啊。 DES是标准的对称加密算法,所以两者的加密应该是相同的,算法采用的密钥长度可以是8bit或者16bit。至于加密的结果不一样,这是因为VI(初始向量)不同。 DES的起始VI是随机的,所以加密结果不同。但是解密过程是相反的,解密到最后一组字节流的时候就得到了VI,这个VI在解密完成后会被舍弃。所以两种实现的加密的结果不同是没有关系的,同样可以解密。KeyGenerator keygen = KeyGenerator.getInstance(Algorithm);SecretKey deskey = keygen.generateKey();用密钥加密明文(myinfo),生成密文(cipherByte)Cipher c1 = Cipher.getInstance(Algorithm);c1.init(Cipher.ENCRYPT_MODE,deskey);byte[] cipherByte=c1.doFinal(myinfo.getBytes()); 记得好像有3种不同的填充算法。ECB,PKCS5和PKCS7。楼主都换着试试。。这个填充好像是在你的密钥不够长度的时候,所采用滴。貌似C#用的是PKCS5 java存储结构 请问JAVA方面有什么经典书籍? 请教一下java中class类的基础问题 鼠标事件 java 里的弹出试菜单的菜单项怎么不可以选! 请问一个小问题,关于怎样将程序名称显示在控制台窗口提示栏中. 问一道简单的题目!请各位大大指教! 一个聊天的服务器程序的改写 谁能帮我解决这个问题啊!!!?? 请高人解释下这段递归代码! 学到了maven,想问下jvm类加载的这个路径的问题 树状菜单 not an enclosing class error.
明文确定完全一致么?包括字符的编码。
偶以前也用过3DES,C++加密,JAVA解密,没发现什么不对啊。
DES的起始VI是随机的,所以加密结果不同。但是解密过程是相反的,解密到最后一组字节流的时候就得到了VI,这个VI在解密完成后会被舍弃。所以两种实现的加密的结果不同是没有关系的,同样可以解密。
KeyGenerator keygen = KeyGenerator.getInstance(Algorithm);SecretKey deskey = keygen.generateKey();用密钥加密明文(myinfo),生成密文(cipherByte)Cipher c1 = Cipher.getInstance(Algorithm);c1.init(Cipher.ENCRYPT_MODE,deskey);byte[] cipherByte=c1.doFinal(myinfo.getBytes());
这个填充好像是在你的密钥不够长度的时候,所采用滴。
貌似C#用的是PKCS5