C 中使用DES加密解密

2021-08-20 05:16:15 字數 2175 閱讀 8689

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...