AES 256加密:公钥和私钥如何生成和使用.net

Yasser-Farag:

关于AES 256加密:

  • 什么是公钥和私钥?
  • 如何生成这两个密钥?
  • 如何使用公众加密数据?
  • 如何使用私有解密数据?
dcastro:

在.Net中,您可以这样创建密钥对:

public static Tuple<string, string> CreateKeyPair()
{
    CspParameters cspParams = new CspParameters { ProviderType = 1 };

    RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024, cspParams);

    string publicKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(false));
    string privateKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(true));

    return new Tuple<string, string>(privateKey, publicKey);
}

然后,您可以使用公共密钥对消息进行加密,如下所示:

public static byte[] Encrypt(string publicKey, string data)
{
    CspParameters cspParams = new CspParameters { ProviderType = 1 };
    RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams);

    rsaProvider.ImportCspBlob(Convert.FromBase64String(publicKey));

    byte[] plainBytes = Encoding.UTF8.GetBytes(data);
    byte[] encryptedBytes = rsaProvider.Encrypt(plainBytes, false);

    return encryptedBytes;
}

并使用您的私钥像这样解密:

public static string Decrypt(string privateKey, byte[] encryptedBytes)
{
    CspParameters cspParams = new CspParameters { ProviderType = 1 };
    RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams);

    rsaProvider.ImportCspBlob(Convert.FromBase64String(privateKey));

    byte[] plainBytes = rsaProvider.Decrypt(encryptedBytes, false);

    string plainText = Encoding.UTF8.GetString(plainBytes, 0, plainBytes.Length);

    return plainText;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

来自分类Java

使用RSA公钥加密AES密钥

来自分类Java

Java使用AES 256和128对称密钥加密

来自分类Dev

如何使用AES 256实现Fernet加密

来自分类Dev

net-snmp是否支持AES-192和AES-256加密?

来自分类Java

对使用公钥和私钥加密(用于加密)感到困惑

来自分类Dev

AES加密/解密iOs和.Net

来自分类Dev

使用CryptoJS和PHP进行AES加密

来自分类Dev

使用Go和PHP进行AES加密

来自分类Java

AES-256-CTR加密的节点JS和Java的解密

来自分类Java

AES-256和初始化向量加密

来自分类Dev

如何使用AES-NI指令和GCC实现AES128加密/解密

来自分类Java

如何在CBC模式和PKCS7填充中解码使用AES-256加密的数据?

来自分类Dev

如何在C#RSA中使用私钥加密和使用公钥解密

来自分类Dev

使用AES加密数据

来自分类Java

使用CryptoJS的AES加密

来自分类Python

使用PyCrypto AES 256加密和解密

来自分类Python

使用PyCrypto AES 256加密和解密

来自分类Java

如何使用CBC实现Java 256位AES加密

来自分类Dev

如何使用CryptoJs正确加密AES256的方法

来自分类Java

无法在Java和PHP之间交换使用AES-256加密的数据

来自分类Dev

AES 256加密和解密

来自分类Java

AES / CBC和AES / ECB加密后的数据大小

来自分类Dev

静态和/或AES_ENCRYPT加密

来自分类Dev

AES javascript加密和Java解密

来自分类Java

AES加密不同结果Java和Python

来自分类Java

RSA和AES解密和加密问题

来自分类Java

JAVA和InputStream中的AES加密

来自分类Dev

Pycrypto AES GCM加密和Java解密

来自分类Dev

PowerShell和Python中的AES加密

TOP 榜单

热门标签

归档