zoukankan      html  css  js  c++  java
  • c#RSA 私钥加签公钥解签

    /// RSA签名
    /// </summary>
    /// <param name="data">待签名数据</param>
    /// <param name="privateKeyJava"></param>
    /// <returns></returns>
    public static string RSASignBouncyCastle(string data, string privateKeyJava)
    {
    RsaKeyParameters privateKeyParam = (RsaKeyParameters)PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKeyJava));
    ISigner signer = SignerUtilities.GetSigner("SHA1WithRSA");
    signer.Init(true, privateKeyParam);//参数为true加签,参数为false验签
    var dataByte = Encoding.GetEncoding("UTF-8").GetBytes(data);
    signer.BlockUpdate(dataByte, 0, dataByte.Length);
    // return Encoding.GetEncoding("UTF-8").GetString(signer.GenerateSignature()); //签名结果 非Base64String
    return Convert.ToBase64String(signer.GenerateSignature());
    }
    /// <summary>
    /// 验签
    /// </summary>
    /// <param name="data">源数据</param>
    /// <param name="publicKey"></param>
    /// <param name="signature">base64签名</param>
    /// <returns></returns>
    public static bool VerifyBouncyCastle(string data, string publicKey, string signature)
    {
    RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey));
    ISigner signer = SignerUtilities.GetSigner("SHA1WithRSA");
    signer.Init(false, publicKeyParam);
    byte[] dataByte = Encoding.GetEncoding("UTF-8").GetBytes(data);
    signer.BlockUpdate(dataByte, 0, dataByte.Length);
    //byte[] signatureByte = Encoding.GetEncoding(encoding).GetBytes(signature);// 非Base64String
    byte[] signatureByte = Convert.FromBase64String(signature);
    return signer.VerifySignature(signatureByte);
    }

    -------------------------------------------

    学而不思则罔,思而不学则殆

    你好,我是【咬轮猫】

    -------------------------------------------

  • 相关阅读:
    小技术花腔:开启 Firefox 地点栏的自动完成特征
    让 OpenOffice.org Writer 竖排翰墨
    扩展 Nautilus 的功用
    Ubuntu 提示:寻觅最快的下载镜像
    使 OpenOffice.org 运转更快的才智
    WordPress 常用快捷键列表
    措置奖励 Fontconfig warning 标题问题
    在 GNOME 桌面疾速疗养音量
    GNOME 桌面建立快捷步调三法
    为 AWN 添加倒影和 3D 后果
  • 原文地址:https://www.cnblogs.com/Hero-/p/9370021.html
Copyright © 2011-2022 走看看