C#安全API
2024-08-27 03:46:06
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, "".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);
签名、验证
生成与导出秘钥、证书、库
最新文章
- linux 常用命令学习记录
- python3-day4-python函数
- 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
- Microsoft HoloLens 技术解谜(下)
- 04747_Java语言程序设计(一)_第8章_多线程
- UILabel头文件常见属性
- pojg487-3279电话号码转换(字符映射)
- RPC 调用简述
- 在线资源--图片/json等
- HTML5 CSS3 诱人的实例: 3D立方体旋转动画
- Vue 进阶之路(四)
- 软件测试人员必备网络知识(一):什么是cookie?
- JAVA WEN开发环境与搭建
- Petrozavodsk Winter Camp, Andrew, 2014, Dichromatic Trees
- Flask-论坛开发-3-数据库
- Ubuntu安装完成后设置root密码
- ng-model的用法
- Linux命令-工作管理命令:&;,ctrl+z,jobs,fg,bg
- Shortest Paths
- 1009 产生数 2002年NOIP全国联赛普及组
热门文章
- atom初体验
- Linux用户名显示-bash-4.1$快速排查
- linux tricks 之 FIELD_SIZEOF.
- [杂]SQL Server 之命名管道连接
- cocos2dx游戏开发——微信打飞机学习笔记(八)——EnemyLayer的搭建
- maven打的jars项目,log4j不会输出日志
- javascript优化--13模式1(DOM和浏览器模式)
- 分享Kali Linux 2016.2第36周镜像虚拟机
- mysql之对表的操作
- bug记录