zoukankan      html  css  js  c++  java
  • 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);

    签名、验证

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

  • 相关阅读:
    python基础之====函数对象、函数嵌套、名称空间与作用域、装饰器
    python基础之函数基础
    pytho基础之文件处理
    python基础之字符编码
    python基础之数据类型与变量
    python基础之核心风格
    函数
    数据类型、字符编码、文件处理
    MongoDB
    Shell学习(三)——Shell条件控制和循环语句
  • 原文地址:https://www.cnblogs.com/pixy/p/4970398.html
Copyright © 2011-2022 走看看