TripleDES 两种加密方式的不同

大志哥123 2008-12-02 11:47:58
CBC,EBC具体是什么含义,在代码中如何看出是用了哪种方式?
...全文
1186 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
getter 2008-12-04
  • 打赏
  • 举报
回复
再給你看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可行,大概是為了你這種人(沒貶意,就是偷懶不看相關知識)而設的
getter 2008-12-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jiaping108 的回复:]
to getter:TripleDES的key沒192/128/64的??
听谁说的?去看JDK文档,3DES只支持192和128位两种密钥~
前两天刚给一个客户做过这方面的东西,用的就是192位的密钥
[/Quote]
那你的客戶可慘了,那只是存放時的長度,每個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頁
getter 2008-12-04
  • 打赏
  • 举报
回复
介紹多兩個模式樓主給分我啊
OFB(Output Feedback):此模式是將隨機量的加密結果作為下一塊的隨機量。
CFB(Cipher Feedback):此模式是將隨機量按鑰對隨機量進行加密再與原文塊進行XOR運算,並且每塊的XOR結果作為下一塊的隨機量。
CTR(Counter)
都在http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
hbwhwang 2008-12-03
  • 打赏
  • 举报
回复
没关注过3DES,mark
getter 2008-12-03
  • 打赏
  • 举报
回复
說得那麼清楚了還說不清楚,呵
那自己慢慢看吧
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation
getter 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jiaping108 的回复:]
看到楼上的解释有点小晕,呵呵...
汗一个~前几天做个东西刚好用过这东西,就我自己理解的回答一下,不好还请原谅

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下吧,资料还是比较多的
[/Quote]
ECB:Electronic Code Book, CBC:Cipher Block Chaining
不是可以,是alogorithm或algorithm/operation mode/padding兩者之一
TripleDES的key沒192/128/64的
jiaping108 2008-12-03
  • 打赏
  • 举报
回复
看到楼上的解释有点小晕,呵呵...
汗一个~前几天做个东西刚好用过这东西,就我自己理解的回答一下,不好还请原谅

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下吧,资料还是比较多的
getter 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liuxinzhi1982 的回复:]
请高手详细讲讲,des加密时候只需要一个pinkey来加密需要加密的字段。另外一个masterkey来加密pinkey,
那TripleDES要3个key,我看到。192位到是三个64,还有一种128的是什么意思。
[/Quote]
......誰說的?
DES是secret key加密,只用到一個key,DES用56BIT的鑰,TripleDES是encrypt/decrypt/encrypt,一般用到兩個key,encrypt操作用一個,decrypt用一個,為112BIT,若用三個就168,沒有用到64,128,192位的
ECB/CBC等等模式,是因為不能一次將大數據加密,一般一次操作的塊大小為64BIT,故一般的數據都要分塊處理,在分塊加密如果組織處理就是模式指明的,DES算法,ECB模式都是不安全的了
jiaping108 2008-12-03
  • 打赏
  • 举报
回复
to getter:TripleDES的key沒192/128/64的??
听谁说的?去看JDK文档,3DES只支持192和128位两种密钥~
前两天刚给一个客户做过这方面的东西,用的就是192位的密钥
大志哥123 2008-12-02
  • 打赏
  • 举报
回复
请高手详细讲讲,des加密时候只需要一个pinkey来加密需要加密的字段。另外一个masterkey来加密pinkey,
那TripleDES要3个key,我看到。192位到是三个64,还有一种128的是什么意思。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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