rsa 加密 pkcs#1格式秘钥的格式化
C++调用openssl库生成的秘钥对,通过传输传出来的只有秘钥的内容,没有秘钥的格式。而我们在调用openssl库加密解密时,传入的秘钥是需要包含格式的。C++调用openssl库需要的格式为pkcs#1, java默认的格式为pkcs#8。
下面的代码,仅仅是添加收尾标识,并非对密匙内容做转换。
//pkcs#1格式的私钥 64位分行 + 首尾标志
std::string formatPrivateKeyPKCS1(std::string priKey )
{
std::string strPrivateKey = priKey;
{
//语句块作用:读取内存里生成的秘钥对,再从内存生成rsa
int nPrivateKeyLen = strPrivateKey.size();
for(int i = ; i < nPrivateKeyLen; i+=)
{
if(strPrivateKey[i] != '\n')
{
strPrivateKey.insert(i, "\n");
}
i++;
}
strPrivateKey.insert(, "-----BEGIN RSA PRIVATE KEY-----\n");
strPrivateKey.append("\n-----END RSA PRIVATE KEY-----\n");
}
return strPrivateKey;
} //pkcs#1格式的公钥 64位分行 + 首尾标志
std::string formatPublicKeyPKCS1(std::string pubKey )
{
std::string strPublicKey = pubKey;
{
//语句块作用:读取内存里生成的秘钥对,再从内存生成rsa
int nPublicKeyLen = strPublicKey.size();
for(int i = ; i < nPublicKeyLen; i+=)
{
if(strPublicKey[i] != '\n')
{
strPublicKey.insert(i, "\n");
}
i++;
}
strPublicKey.insert(, "-----BEGIN RSA PUBLIC KEY-----\n");
strPublicKey.append("\n-----END RSA PUBLIC KEY-----\n");
}
return strPublicKey;
}
附1:rsa密匙对生成
附 2:rsa秘钥对在线格式转换
附3:DES加解密 cbc模式 的简单讲解 && C++用openssl库来实现的注意事项
附4:C++ 使用openssl库实现 DES 加密——CBC模式 && RSA加密——公加私解——私加公解
rsa 加密 pkcs#1格式秘钥的格式化的更多相关文章
- 【转】iOS安全之RSA加密/生成公钥、秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- C#实现SHA256WithRSA加密用于Java的秘钥私钥
首先要把Java秘钥进行转换,然后再进行加密 转制秘钥的方法 public static string RSAPrivateKeyJava2DotNet(string privateKey) { Rs ...
- C#的RSA加密解密签名,就为了支持PEM PKCS#8格式密钥对的导入导出
差点造了一整个轮子 .Net Framework 4.5 里面的RSA功能,并未提供简单对PEM密钥格式的支持(.Net Core有咩?),差点(还远着)造了一整个轮子,就为了支持PEM PKCS#8 ...
- 利用SHA-1算法和RSA秘钥进行签名验签(带注释)
背景介绍 1.SHA 安全散列算法SHA (Secure Hash Algorithm)是美国国家标准和技术局发布的国家标准FIPS PUB 180-1,一般称为SHA-1.其对长度不超过264二进制 ...
- RSA 加解密 秘钥对说明
rsa非对称加密, 加解密需要不同的秘钥,称作一对. rsa加解密分两种,第一:公钥加密私钥解密.第二:私钥加密公钥解密. 需要注意的是,公加私解得到的密文是变化的,而私加公解的得到的密文是固定的. ...
- 非对称加密 秘钥登录 https
非对称加密简介: 对称加密算法在加密和解密时使用的是同一个秘钥:而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)私有密钥(private key,简 ...
- 开源工具 DotnetRSA 快速生成和转换RSA秘钥
一.简介 DotnetRSA 是一个利用 .NET Core 2.1 开发的 .NET Global Tool,是可以想npm全局安装一样,安装在你的系统中,只需敲一行命令便可以快速生成RSA加密算法 ...
- 【Python】 基于秘钥的对称加密
[Crypto] 关于用python进行信息的加密,类似的解决方案有很多比如用base64编码进行encode,再或者是hashlib来进行hash.但是还缺少一种明明场景很简单的解决方案,就是把利用 ...
- Android RSA加密解密
概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困 难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数 ...
随机推荐
- Sethi model
小结: 1. 销量 广告 微分方程 动态系统 市场份额 https://en.wikipedia.org/wiki/Sethi_model The Sethi model was developed ...
- strlen函数的汇编实现分析
[原创][老刘谈算法001]这位运算玩的真溜—strlen函数的汇编实现分析-『密码算法』-看雪安全论坛 https://bbs.pediy.com/thread-229243.htm
- iOS使用mask切割不规则图案
起点,终点要闭合: CGPathAddQuadCurveToPoint(path, NULL, viewSize.width * 0.5, viewSize.height, viewSize.widt ...
- ORACLE DB体系结构
. 实例:一组oracle后台进程.线程以及一个共享内存区. 连接:用户进程和实例之间的通信 会话:用户通过用户进程与实例建立的特定连接 参数文件:包含控制文件的位置和名称 分为pfile和spfil ...
- pyhton读取 excel表格文件
2019的第一天,忘记昨日之事,迎接新的明天. excel表格文件办公中常用,如通过Python操作这些数据需导入并有序读取这些数据 特随笔,供以后查阅 代码如下: import xlrd # fil ...
- kubernetes的应用数据持久化
1.无状态应用与有状态应用 应用的有状态和无状态是根据应用是否有持久化保存数据的需求而言的,即持久化保存数据的应用为有状态的应用,反之则为无状态的应用.常见的系统往往是有状态的应用,比如对于微博和微信 ...
- 元素class的增、删、查、toggle
比如有一个元素div <div class="btn user">我是div</div> 之前只知道元素有一个className可以来改动 元素的类名 但 ...
- 【Python基础】json.dumps()和json.loads()、json.dump()和json.load()的区分
json文件处理涉及的四个函数json.dumps()和json.loads().json.dump()和json.load()的区分 一.概念理解 1.json.dumps()和json.loads ...
- SOCKS5 协议解析
代理 根据 HTTP 1.1 的定义,proxy 是: An intermediary program which acts as both a server and a client for the ...
- 深入理解Java虚拟机笔记
1. Java虚拟机所管理的内存 2. 对象创建过程 3. GC收集 4. HotSpot算法的实现 5. 垃圾收集器 6. 对象分配内存与回收细节 7. 类文件结构 8. 虚拟机类加载机制 9.类加 ...