to getter:TripleDES的key沒192/128/64的?? 听谁说的?去看JDK文档,3DES只支持192和128位两种密钥~ 前两天刚给一个客户做过这方面的东西,用的就是192位的密钥
那你的客戶可慘了,那只是存放時的長度,每個byte只用到7個Bit http://en.wikipedia.org/wiki/Triple_DES 《Professional Java Security》第51頁 《Network Security - Private Communication in a PUBLIC World》Second Edition第111頁
再給你看exception時的信息吧 java.security.InvalidParameterException: Wrong keysize: must be equal to 112 or 168 at com.sun.crypto.provider.DESedeKeyGenerator.engineInit(DashoA13*..) at javax.crypto.KeyGenerator.init(DashoA13*..) at javax.crypto.KeyGenerator.init(DashoA13*..) at com.bocmo.it.secuteam.secretscheme.TestDESedeECBPKCS5Padding.main(TestDESedeECBPKCS5Padding.java:23) 我試了128,192可行,大概是為了你這種人(沒貶意,就是偷懶不看相關知識)而設的
那TripleDES要3个key,我看到。192位到是三个64,还有一种128的是什么意思。
DES是secret key加密,只用到一個key,DES用56BIT的鑰,TripleDES是encrypt/decrypt/encrypt,一般用到兩個key,encrypt操作用一個,decrypt用一個,為112BIT,若用三個就168,沒有用到64,128,192位的
ECB/CBC等等模式,是因為不能一次將大數據加密,一般一次操作的塊大小為64BIT,故一般的數據都要分塊處理,在分塊加密如果組織處理就是模式指明的,DES算法,ECB模式都是不安全的了
汗一个~前几天做个东西刚好用过这东西,就我自己理解的回答一下,不好还请原谅1.CBC,EBC具体是什么含义,在代码中如何看出是用了哪种方式?
CBC,EBC只是加密模式而已,CBC是密码分组链接模式而EBC是加密块链接模式,
在代码中可以用javax.crypto.Cipher类初始化的时候可以除了可以指定此 Cipher 对象的算法名称外,还可以指定加密模式以及填充模式,如Cipher c = Cipher.getInstance("DESede/CBC/PKCS5Padding");默认模式为ECB
2.那TripleDES要3个key,我看到。192位到是三个64,还有一种128的是什么意思。
128位的情况是这样的:
3DES加密过程为:
C=Ek3(Dk2(Ek1(P))) //P是明文,C是密文,E代表加密,D代表解密,K代表加解密时使用的密钥
如果数据对安全性要求不那么高,K1可以等于K3。在这种情况下,密钥的有效长度为128位。
解密过程:
P=Dk1((EK2(Dk3(C))) 还有什么不懂就GG或者BAIDU下吧,资料还是比较多的
不是可以,是alogorithm或algorithm/operation mode/padding兩者之一
TripleDES的key沒192/128/64的
那自己慢慢看吧
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
听谁说的?去看JDK文档,3DES只支持192和128位两种密钥~
前两天刚给一个客户做过这方面的东西,用的就是192位的密钥
http://en.wikipedia.org/wiki/Triple_DES
《Professional Java Security》第51頁
《Network Security - Private Communication in a PUBLIC World》Second Edition第111頁
java.security.InvalidParameterException: Wrong keysize: must be equal to 112 or 168
at com.sun.crypto.provider.DESedeKeyGenerator.engineInit(DashoA13*..)
at javax.crypto.KeyGenerator.init(DashoA13*..)
at javax.crypto.KeyGenerator.init(DashoA13*..)
at com.bocmo.it.secuteam.secretscheme.TestDESedeECBPKCS5Padding.main(TestDESedeECBPKCS5Padding.java:23)
我試了128,192可行,大概是為了你這種人(沒貶意,就是偷懶不看相關知識)而設的
OFB(Output Feedback):此模式是將隨機量的加密結果作為下一塊的隨機量。
CFB(Cipher Feedback):此模式是將隨機量按鑰對隨機量進行加密再與原文塊進行XOR運算,並且每塊的XOR結果作為下一塊的隨機量。
CTR(Counter)
都在http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation