數據加密標准(DES)是一個古老的對稱密鑰加密算法,目前已經不再使用。它不是一個很安全的算法。
三重DES(Triple-DES)仍然是很安全的,但是也只是在別無他法的情況下的一個較好的選擇。顯然高級加密標准(AES)是一個更好的加密算法,NIST用AES代替Triple-DES作為他們的標准(下面有更詳細的討論)。其他較好的算法包括另外兩個AES的變種算法Twofish和Serpent-也稱為CAST-128,它是效率和安全的完美結合。這幾個算法不僅比DES更安全,而且也比DES的速度更快。為什麼要使用一些又慢又不安全的算法呢
SHA1是一個哈希函數,而不是一個加密函數。作為一個哈希函數,SHA1還是相當優秀的,但是還需要幾年的發展才能用作加密算法。如果你正在設計一個新系統,那麼謹記你可能會在若干年後用SHA1代替目前的算法。我再重復一遍:只是可能。
RSA是一個公開密鑰加密算法。RSA的密鑰長度一般為2048-4096位。如果你現在的系統使用的是1024位的公開密鑰,也沒有必要擔心,但是你可以加長密鑰長度來達到更好的加密效果。
高級加密標准(AES)是一個用來代替數據加密標准(DES)的算法。目前使用的一般為128,196和256位密鑰,這三種密鑰都是相當安全的。而且美國政府也是這樣認為的。他們批准將128位密鑰的AES算法用於一般數據加密,196位和256位密鑰的AES算法用於秘密數據和絕密數據的加密。
DESX是DES的一個改進版本。DESX的原理是利用一個隨機的二進制數與加密前的數據以及解密後的數據異或。雖然也有人批評這種算法,但是與DES相比DESX確實更安全,不過DESX在許多情況下並不適用。我曾經處理過一個硬件支持DES的系統,由於有些環節不能容忍三重DES的慢速,我們在這些地方使用了DESX來代替DES。然而,這是一個非常特殊的情況。如果你需要使用DESX,理由顯而易見(可能和我不得不使用DESX的原因類似)。但我建議你使用AES或者上面我提到的一些算法。
RC4是一種常用於SSL連接的數據流加密算法。它已經出現很多年了,而且有很多已知和可能的缺陷,因此在一些新的工程中不要使用它。如果你目前正在使用它而且可以輕易的卸載它,那麼情況也不是很壞。不過,我懷疑如果你現在正在使用它,你不可能輕易的卸載它。如果不能將它從系統中輕易的卸載,那麼你還是考慮今後怎樣升級它,但是不要感到很驚慌。我不會拒絕在一個使用RC4算法來加密SSL連接的網站購買東西,但是如果我現在要新建一個系統,那麼我會考慮使用其他的算法,例如:AES。
對於下面兩個算法MD5-RSA和SHA1-DSA,他們是用於數字簽名的。但是不要使用MD5,因為它有很多缺陷。很多年前大家就知道MD5中存在漏洞,不過直到今年夏天才破解出來。我們可以將SHA1和RSA或DSA配合在一起使用,目前DSA的密鑰位數高達1024位,這個密鑰位數已經足夠長了,因此不需要擔心安全問題。然而,如果NIST實現了更長的密鑰位數當然更好。
X.509證書是一個數據結構,常用於規定比特和字節的順序,它本身不是一個密碼系統。它通常包含一個RSA密鑰,也可能包含一個DSA密鑰。但是X.509證書內部以及證書本身並不是加密技術。