国家实名认证使用到的加密
C# 使用BouncyCastle进行AEAD_AES_256_GCM 加密
/// <summary>
/// 使用BouncyCastle进行AEAD_AES_256_GCM 加密
/// </summary>
/// <param name="key">key32位字符</param>
/// <param name="nonce">随机串12位</param>
/// <param name="plainData">明文</param>
/// <param name="associatedData">附加数据可能null</param>
/// <returns></returns>
public static string AesGcmEncryptByBouncyCastleBy(string key, string nonce, string plainData, string associatedData)
{
var associatedBytes = associatedData == null ? null : Encoding.UTF8.GetBytes(associatedData);
byte[] byteData = StrToHexByte(key);
byte[] values = GetRandomBytes(12);
var gcmBlockCipher = new GcmBlockCipher(new AesEngine());
var parameters = new AeadParameters(
new KeyParameter(byteData),
128, //128 = 16 * 8 => (tag size * 8)
Encoding.UTF8.GetBytes(nonce),
associatedBytes);
gcmBlockCipher.Init(true, parameters);
var data = Encoding.UTF8.GetBytes

文章介绍了如何在C#中使用BouncyCastle库进行AEAD_AES_256_GCM加密和解密过程,涉及密钥、随机nonce、明文和附加数据的处理。
最低0.47元/天 解锁文章
3187

被折叠的 条评论
为什么被折叠?



