C 實現RSA AES加密解密

2021-09-29 10:27:31 字數 2218 閱讀 1148

c#  system.security.cryptography 提供了base64和xmlstring兩種方式,我更喜歡base64的

rsa是非對稱加密,經典的對稱加密就是des,aes等,不過這兩種演算法的缺點是加解密雙方都必須知道金鑰,安全性不高

rsa則可以解決這個問題,生成公鑰和私鑰,公鑰可以公開給其他人,私鑰自己保管,別人用公鑰加密後,自己用私鑰解密。

rsa**如下:

using system;

using system.collections.generic;

using system.security.cryptography;

using system.text;

using system.windows;

namespace rsa

", strtext);

string str1 = rsainstance.encrypt(strtext, dictk["publickey"]);

console.writeline("加密後的字串:", str1);

string str2 = rsainstance.decrypt(str1, dictk["privatekey"]);

console.writeline("解密後的字串:", str2);}}

public class rsautil

/// /// 私鑰解密

///

///

///

///

public string decrypt(string strentrytext, string strprivatekey)

/// /// 獲取公鑰和私鑰

///

///

public dictionarygetkey()

}}

using system;

using system.io;

using system.security.cryptography;

using system.text;

namespace aestest

");string key = "1234567890qwerty";//16位元組,128位

var encryptstr = encrypt(key, password);

console.writeline($"使用金鑰: 為原密碼: 加密");

console.writeline($"得到密文:");

console.writeline($"使用金鑰: 為密文: 解密");

var realpwd = decrypt(key, encryptstr);

console.writeline($"得到原密碼:");

}// aes 加密的初始化向量,加密解密需設定相同的值。預設值我們設定成 16 個 0

public static byte aes_iv = encoding.utf8.getbytes("0000000000000000");

// aes的key支援128位,最大支援256位。256位需要32個位元組。

// 所以這裡使用金鑰的前 32 位元組作為 key ,不足32補 0。

public static byte getkey(string pwd)

pwd = pwd.substring(0, 32);

return encoding.utf8.getbytes(pwd);

}/// /// 加密

///

/// 金鑰

/// 要被加密的原始密碼

/// 密文base64

public static string encrypt(string key, string password)

byte bytes = msencrypt.toarray();

return convert.tobase64string(bytes);}}

}}

/// /// 解密

///

/// 金鑰

/// 密文

/// 明文-原密碼

public static string decrypt(string key, string encryptstr)}}

}}

}}

aes加解密,不同語言之間,需要對上aes的模式,金鑰,向量, 編碼格式

加密解密RSA AES。(一)

資料加密技術的介紹及實踐過程。1.背景 1.1 資料加密 指利用密碼技術資訊進行加密,實現資訊隱蔽,從而達到保證資訊保安的目的。按照作用的不同,資料加密的技術分為資料傳輸加密技術,資料儲存加密技術,資料完整性鑑別技術和金鑰管理技術。1.1.1資料傳輸加密技術 有線路加密和端對端加密兩種。端對端加密指...

C 實現DES加密解密,AES加密解密

des演算法描述簡介 des是data encryption standard 資料加密標準 的縮寫。它是由ibm公司研製的一種加密演算法,美國國家標準局於1977年公布把它作為非機要部門使用的資料加密標準 它是乙個分組加密演算法,他以64位為分組對資料加密。同時des也是乙個對稱演算法 加密和解密...

C 加密解密

using system using system.text using system.globalization using system.security.cryptography class des 加密字串 public string encryptstring string sinputs...