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);

 

签名、验证

 

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

 

转载于:https://www.cnblogs.com/pixy/p/4970398.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值