• C#安全API


    Bouncycastle库C#版

    官网地址为:http://www.bouncycastle.org/csharp/。

    http://blog.csdn.net/popozhu/article/details/5812662

    http://www.xuebuyuan.com/301023.html

    从PEM文件读取秘钥

    PemReader r = new PemReader(new StreamReader("Files/pubkey.pem"));
    AsymmetricKeyParameter pubKey = (AsymmetricKeyParameter)r.ReadObject();
    PemReader r
    = new PemReader(new StreamReader("Files/prvkey.pem")); AsymmetricKeyParameter prvKey = (AsymmetricKeyParameter)r.ReadObject();

    加载pfx证书库、读取证书、获取秘钥

    FileStream ms = new FileStream("store.p12",OpenMode.Open);
    Pkcs12Store store = new Pkcs12StoreBuilder().Build();
    store.Load(ms, "123456".ToCharArray());
    
    //获取第一个别名
    IEnumerator itor = store.Aliases.GetEnumerator();
    itor.MoveNext();
    string alins = itor.Current.ToString();
    
    AsymmetricKeyParameter prvKey=null;
    AsymmetricKeyParameter pubKey=null;
    
    if(sotre.IsKeyEntry(alins))
      prvKey = store.GetKey(alins).Key;
    
    cert = store.GetCertificate(alins).Certificate;
    pubkey=cert.GetPublicKey();

    加密、解密

    AsymmetricKeyParameter prvKey=...;
    AsymmetricKeyParameter pubKey=...;
    
    //公钥加密
    string origin="abcd1234";
    byte[] originbytes=Encoding.Default.getBytes(origin);
    IBufferedCipher c = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
    c.Init(true, pubKey);
    byte[] encryBytes = c.DoFinal(origin);
    string encryStr=Encoding.Default.GetString(encryBytes);
    
    //私钥解密
    IBufferedCipher c = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
    c.Init(false, prvKey);
    byte[] recoverBytes=c.DoFinal(encryBytes );
    string recover=Encoding.Default.GetString(recoverBytes);

    签名、验证

    生成与导出秘钥、证书、库

  • 相关阅读:
    http请求工具类
    java订单号生成
    SpringUtil获取Spring容器对象
    git push的日志展示问题
    nodejs环境搭建,淘宝镜像cnpm
    csdn里面代码块颜色
    nginx简单使用
    vue项目打包后字体文件路径出错的解决办法
    VUE 爬坑之旅 -- 用 ES6 语法写一个工具类,并全局引用
    VUE 爬坑之旅 -- 用 ES6 语法写一个工具类,并全局引用
  • 原文地址:https://www.cnblogs.com/pixy/p/4970398.html
Copyright © 2020-2023  润新知