des演算法為
密碼體制
中的對稱密碼體制,又被稱為美國
資料加密標準
,是2023年美國ibm公司研製的對稱密碼體制
加密演算法
。 明文按64位進行分組,
金鑰長64位,金鑰事實上是56位參與des運算(第8、16、24、32、40、48、56、64位是校驗位, 使得每個金鑰都有奇數個1)分組後的明文組和56位的金鑰按位替代或交換的方法形成密文組的加密方法。
其入口引數有三個:key、data、mode。key為加密解密使用的
金鑰,data為加密解密的資料,mode為其工作模式。當模式為加密模式時,明文按照64位進行分組,形成明文組,key用於對
資料加密
,當模式為解密模式時,key用於對
資料解密
。實際運用中,金鑰只用到了64位中的56位,這樣才具有高的安全性。
des標準現在已經被aes取代,主要使用md5加密
優點:「des」:運算速度快,資源消耗較少;「aes」:運算速度快,安全性高,資源消耗少
缺點:「des」:安全性低
des,全稱data encryption standard,是一種對稱加密演算法。由於其安全性比較高(有限時間內,沒有一種加密方法可以說是100%安全),很可能是最廣泛的金鑰系統(我們公司也在用,估計你們也有在用....),唯一一種方法可以破解該演算法,那就是窮舉法。
加密和解密本身是一門很複雜的學科,本文淺操,我就不去**起加密的過程和原理。如果要深究的話,肯定是要花寫精力的,寫這篇文章只有兩個方法,乙個是加密,乙個是解密的。比較簡潔,送給小白。引用的命名空間是using system.security.cryptography,用到了一下類
descryptoserviceprovider:定義訪問資料加密標準,演算法的加密服務提供程式 (csp) 版本的包裝物件
memorystream:記憶體流
cryptostream:加密資料流的轉換
des加密解密的過程主要有四個引數參與其中:明文、金鑰、向量、加密結果。他們之間的關係很好理解,加密過程是這樣的,加密結果=明文+金鑰+向量,反之也是一樣的。值得注意的是金鑰和向量字串長度必須為8.
/// c# des解密方法
///
/// 待解密的字串
/// 金鑰
/// 向量
/// 解密後的字串
public
static
string
desdecrypt(
string
encryptedvalue,
string
key,
string
iv)
)
return
encoding.utf8.getstring(ms.toarray());
} }
} }
[csharp]
view plain
copy
///
/// c# des加密方法
///
/// 要加密的字串
/// 金鑰
/// 向量
/// 加密後的字串
public
static
string
desencrypt(
string
originalvalue,
string
key,
string
iv)
)
return
convert.tobase64string(ms.toarray());
} }
} }
C 中使用DES和AES加密解密
c 中使用des和aes加密解密 using system using system.text using system.security.cryptography using system.io namespace mycryptography 獲取向量 private static string...
C 中使用DES和AES加密解密
using system using system.text using system.security.cryptography using system.io namespace mycryptography 獲取向量 private static string iv g mk k y des加...
C 中使用DES和AES加密解密
code highlighting produced by actipro codehighlighter freeware using system using system.text using system.security.cryptography using system.io names...