非对称密钥密码算法代码简记(RSA)

非对称密钥密码算法代码简记(RSA)

算法简介

链接如下:
https://blog.csdn.net/f_957995490/article/details/108413226

代码示例

使用的是RSA算法:

//获取密钥和公钥
public void RSAKey(out string xmlKeys, out string xmlPublicKey)
{
    try
    {
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        xmlKeys = rsa.ToXmlString(true);
        xmlPublicKey = rsa.ToXmlString(false);
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
//RSA的加密函数
public string RSAEncrypt(string xmlPublicKey, string m_strEncryptString)
{
    try
    {
        byte[] PlainTextBArray;
        byte[] CypherTextBArray;
        string Result;
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        rsa.FromXmlString(xmlPublicKey);
        PlainTextBArray = (new UnicodeEncoding()).GetBytes(m_strEncryptString);
        CypherTextBArray = rsa.Encrypt(PlainTextBArray, false);
        Result = Convert.ToBase64String(CypherTextBArray);
        return Result;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}
//RSA的加密函数
public string RSAEncrypt(string xmlPublicKey, byte[] EncryptString)
{
    try
    {
        byte[] CypherTextBArray;
        string Result;
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        rsa.FromXmlString(xmlPublicKey);
        CypherTextBArray = rsa.Encrypt(EncryptString, false);
        Result = Convert.ToBase64String(CypherTextBArray);
        return Result;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}


//RSA的解密函数
public string RSADecrypt(string xmlPrivateKey, string m_strDecryptString)
{
    try
    {
        byte[] PlainTextBArray;
        byte[] DypherTextBArray;
        string Result;
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        rsa.FromXmlString(xmlPrivateKey);
        PlainTextBArray = Convert.FromBase64String(m_strDecryptString);

        //XP版本以上为true
        DypherTextBArray = rsa.Decrypt(PlainTextBArray, false);
        Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
        return Result;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

//RSA的解密函数
public string RSADecrypt(string xmlPrivateKey, byte[] DecryptString)
{
    try
    {
        byte[] DypherTextBArray;
        string Result;
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        rsa.FromXmlString(xmlPrivateKey);
        DypherTextBArray = rsa.Decrypt(DecryptString, false);
        Result = (new UnicodeEncoding()).GetString(DypherTextBArray);
        return Result;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

代码原文链接

https://blog.csdn.net/byxdaz/article/details/6741236

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值