openssl Rsa 分段加密解密

密钥长度 1024

openssl genrsa -out rsa_private_key.pem 1024
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
function readPublicKey($keyPath)
{
    $key = file_get_contents($keyPath);
    $this->rsaPublicKey =  openssl_pkey_get_public($key)
}
function readPrivateKey($keyPath)
{
    $key = file_get_contents($keyPath);
    $this->rsaPrivateKey =  openssl_pkey_get_private($key)
}
// 加密后转为base64编码
function encrypt($originalData)
{
    $crypto = ‘‘;
    foreach (str_split($originalData, 117) as $chunk)
    {
        openssl_public_encrypt($chunk, $encryptData, $this->rsaPublicKey);
        $crypto .= $encryptData;
    }
    return base64_encode($crypto);
}
// base64 post 过来后 ‘+‘ 号变成 空格
function decrypt($encryptData)
{
    $crypto = ‘‘;
    foreach (str_split(str_replace(‘ ‘, ‘+‘, base64_decode($encryptData)), 128) as $chunk)
    {
        openssl_private_decrypt($chunk, $decryptData, $this->rsaPrivateKey);
        $crypto .= $decryptData;
    }
    return $crypto;
}
时间: 2024-10-10 08:47:44

openssl Rsa 分段加密解密的相关文章

.net core RSA 分段加密解密,签名验签(对接java)

参考地址: https://www.cnblogs.com/stulzq/p/7757915.html https://www.cnblogs.com/stulzq/p/8260873.html https://github.com/stulzq/RSAExtensions(XC.RSAUtil) https://www.cnblogs.com/stulzq/p/12053976.html https://github.com/stulzq/RSAExtensions (RSAExtension

openssl RSA非对称加密解密

需要先了解的openssl系列函数 openssl_pkey_get_private 从证书中解析获取私钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false openssl_pkey_get_public 从证书中解析获取公钥,以供使用.成功,返回真实的密钥资源标识符(Resource ID),否则返回false openssl_private_encrypt($data, $encrypted, $privateKeyResourceID, OPENSSL

RSA算法加密解密,数据传输,前台与后台数据交互

1.RSA算法加密解密思路. java后台随机生成公钥.私钥.存储于session中,告知前台js获取公钥.通过jsencrypt.min.js进行加密.传输回后台,后台通过私钥解密. 2.RSA常见异常分解. 问题一 Cannot find any provider supporting RSA 出现此问题,属于JDK版本bug问题,笔者1.8.0_171遇到此问题,更换1.8.0_211之后即可解决. 问题二 DER input, Integer tag error 出现此问题,主要是公钥,

基于RSA的加密/解密示例C#代码

在C#程序中,大家可能比较熟悉的方式是md5加密解密方式,对RSA可能并不是很熟悉, 下面就说一下RSA加密和解密的算法: using System;using System.Security.Cryptography;using System.Text;class RSACSPSample{    static void Main()    {        try        {            string str_Plain_Text = "How are you?How are

java&Ios rsa 进行加密解密

最近公司要准备做一个传输数据加密准备用RSA 首先说一下自己开发中越到到坑 开始后台做给了我字符串格式的公钥.私钥做调试 后台自己加密.解密.加签.验签,都没有问题, 我这边同样也是加密.解密.加签.验签都没有问题 加密每次都是不同的,但是加签只要铭文固定,结果是一样 问题出在,同样的铭文,前端和后台加签出来不结果 最后和后台讨论用我们前端生成的文件进行加密解密 一.首先说一下生成公钥.私钥.证书的过程 openssl genrsa -out private_key.pem 1024 opens

RSA算法加密解密

该工具类中用到了BASE64,需要借助第三方类库:javabase64-1.3.1. jar 注意:RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行. RSA加密对明文的长度是有限制的,如果加密数据过大会抛出如下异常: Exception in thread "main" javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes a

ios php RSA 非对称加密解密 der 和pem生成

ios 使用public_key.der加密 php 使用 private_key.pem解密 openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem phrase: countryName : CNStateName:ZhejiangCityName: organizationName: organizational Unit Name: CommonNam

RSA 分段加解密【解决“不正确的长度”的异常】

方法1: RSA 是常用的非对称加密算法.最近使用时却出现了“不正确的长度”的异常,研究发现是由于待加密的数据超长所致. .NET Framework 中提供的 RSA 算法规定: 待加密的字节数不能超过密钥的长度值除以 8 再减去 11(即:RSACryptoServiceProvider.KeySize / 8 - 11),而加密后得到密文的字节数,正好是密钥的长度值除以 8(即:RSACryptoServiceProvider.KeySize / 8). 所以,如果要加密较长的数据,则可以

安全不安全002:C#实现RSA算法加密解密

通过前面的文章我们学会了如何生成公钥和私钥,详见这篇文章:https://blog.csdn.net/yysyangyangyangshan/article/details/80368397.那么,我们来看在C#中如何实现RSA加密解密.直接上代码,如下类是RSA算法实现的加密,加解密,签名以及签名的验证. /// <summary> /// 类名:RSACrypt /// 功能:RSA加密.解密.签名.验签 /// </summary> public sealed class R