des加密的key
??DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的「每輪」密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需要用很長時間,而用硬體解碼速度非常快,但幸運的是當時大多數黑客並沒有足夠的設備製造出這種硬體設備。在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。所以,當時DES被認為是一種十分強壯的加密方法。
??但是,當今的計算機速度越來越快了,製造一台這樣特殊的機器的花費已經降到了十萬美元左右,所以用它來保護十億美元的銀行間線纜時,就會仔細考慮了。另一個方面,如果只用它來保護一台伺服器,那麼DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個伺服器而花那麼多的錢破解DES密文。由於現在已經能用二十萬美圓製造一台破譯DES的特殊的計算機,所以現在再對要求「強壯」加密的場合已經不再適用了。
??三重DES
??因為確定一種新的加密法是否真的安全是極為困難的,而且DES的唯一密碼學缺點,就是密鑰長度相對比較短,所以人們並沒有放棄使用DES,而是想出了一個解決其長度問題的方法,即採用三重DES。這種方法用兩個密鑰對明文進行三次加密,假設兩個密鑰是K1和K2,其演算法的步驟如圖5.9所示:
??1. 用密鑰K1進行DEA加密。
??2. 用K2對步驟1的結果進行DES解密。
??3. 用步驟2的結果使用密鑰K1進行DES加密。
??這種方法的缺點,是要花費原來三倍時間,從另一方面來看,三重DES的112位密鑰長度是很「強壯」的加密方式了
❷ DES加密演算法的問題
優點:DES加密演算法密鑰只用到了64位中的56位,這樣具有高的安全性。
缺點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。
❸ 如何解決DES加密演算法中KEY和IV的8位元組限制
DES是70年代的東西,本身就只能支持64位密鑰,實際只是56位,最後8位是奇偶校驗
並且非常容易破,就算是brute force方式,也可以在1天之內破解
所以換Rijndael吧,有n個好處:
1) Rijndael的現成實現RijndaelManaged是託管類,不需要用Windows的CSP
2) 支持更長的密鑰
3) 是國際新標准,叫做AES
❹ des加密中的key是多少進制
二進制。
DES演算法為密碼體制中的對稱密碼體制,又被成為美國數據加密標准,是1972年美國IBM公司研製的對稱密碼體制加密演算法。
其密鑰長度為56位,明文按64位進行分組,將分組後的明文組和56位的密鑰按位替代或交換的方法形成密文組的加密方法。DES加密演算法特點:分組比較短、密鑰太短、密碼生命周期短、運算速度較慢。
❺ java des加密,密鑰的長度是多少
3des演算法是指使用雙長度(16位元組)密鑰k=(kl||kr)將8位元組明文數據塊進行3次des加密/解密。如下所示:
y
=
des(kl)[des-1(kr)[des(kl[x])]]
解密方式為:
x
=
des-1
(kl)[des
(kr)[
des-1
(kl[y])]]
其中,des(kl[x])表示用密鑰k對數據x進行des加密,des-1
(kl[y])表示用密鑰k對數據y進行解密。
sessionkey的計算採用3des演算法,計算出單倍長度的密鑰。表示法為:sk
=
session(dk,data)
3des加密演算法為:
void
3des(byte
doublekeystr[16],
byte
data[8],
byte
out[8])
{
byte
buf1[8],
buf2[8];
des
(&doublekeystr[0],
data,
buf1);
udes(&doublekeystr[8],
buf1,
buf2);
des
(&doublekeystr[0],
buf2,
out);
}
❻ 請教各位朋友,DES加密key值安全問題
給他個固定的種子
String s = "xxxxx ";
String Algorithm = "DES "; // 定義 加密演算法,可用 DES,DESede,BlowfishKeyGenerator keygen = KeyGenerator.getInstance(Algorithm);
keygen.init(new SecureRandom(s.getBytes()));
SecretKey deskey = keygen.generateKey();
❼ java des加密key生成問題
當然不一樣了,兩種加密方式底層代碼實現都不一樣,加密出來的結果當然也不一樣了
❽ php des3加密key長度不到24位怎麼辦
php使用3DES
加密時,如果加密用的key長度不足可以使用
「 」來進行補位。
假設使用了
pkcs#5
填充,key的長度為8位,但是實際給的key只有7位,那麼可以使用一個
「 」進行補位。如圖:
其他情況,可以以此類推。
❾ desede 加密為什麼key不是24位會報錯
1)DES加密程序中,保存key和iv有兩種做法 【Ⅰ】將key和iv「寫死」在在程序中,一旦程序編譯發布後,key和iv就無法改變 【Ⅱ】將保存key和iv保存在配置文件中,程序發布後,可以隨時改變配置文件中的key和iv 為了增加安全性,在第二種方法中,配置...
❿ 關於C# DES加密時密鑰問題
1)DES加密程序中,保存key和iv有兩種做法
【Ⅰ】將key和iv「寫死」在在程序中,一旦程序編譯發布後,key和iv就無法改變
【Ⅱ】將保存key和iv保存在配置文件中,程序發布後,可以隨時改變配置文件中的key和iv
為了增加安全性,在第二種方法中,配置文件中保存的不是key和iv的明文,而是用md5加密後的key和iv。這樣,即使你的程序發布出去,別人也無法知道程序中真正使用的key和iv是什麼,增加了安全性。
System.Web.Security.FormsAuthentication.(sKey, "md5").Substring(0, 8)的作用是從配置文件取出加密的key和iv,然後用md5將解密,從而得到真正的key和iv
2)明白了1)後,第二個問題就容易理解了。