php 的rsa加密与解密

系统:centos6.5

linux系统生成公私钥对方法:

openssl genrsa -out rsa_private_key.pem 1024
openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
第一条命令生成原始 RSA私钥文件 rsa_private_key.pem,第二条命令将原始 RSA私钥转换为 pkcs8格式,第三条生成RSA公钥 rsa_public_key.pem

下面是代码:

公钥加密私钥解密

        $source=‘abcde‘;
        $pkeyid=file_get_contents(DIR_BASE.‘/rsa_key/rsa_public_key.pem‘, ‘r‘);
        $res = openssl_get_publickey($pkeyid);
        openssl_public_encrypt($source,$crypttext,$res);
        echo $crypttext;
        $pkeyid=file_get_contents(DIR_BASE.‘/rsa_key/rsa_private_key.pem‘, ‘r‘);
        $res2 = openssl_get_privatekey($pkeyid);
        if(openssl_private_decrypt($crypttext,$data,$res2)){
            echo $data;
        }else{
            echo "false";
        }

私钥加密公钥解密

$source=‘abcde‘;
        $pkeyid=file_get_contents(DIR_BASE.‘/rsa_key/rsa_private_key.pem‘, ‘r‘);
        $res = openssl_get_privatekey($pkeyid);
        openssl_private_encrypt($source,$crypttext,$res);
        echo $crypttext;
        $pkeyid=file_get_contents(DIR_BASE.‘/rsa_key/rsa_public_key.pem‘, ‘r‘);
        $res2 = openssl_get_publickey($pkeyid);
        if(openssl_public_decrypt($crypttext,$data,$res2)){
            echo $data;
        }else{
            echo "false";
        }
时间: 2024-10-14 09:12:10

php 的rsa加密与解密的相关文章

iOS rsa加密与解密

转自 --响铃  IOS rsa加密与解密 ras加密需要两组秘钥,一组公共秘钥,一组私有秘钥. 生成命令: openssl req -x509 -out public_key.der -outform der -new -newkey rsa:2048 -keyout private_key.pem public_key.der为公共秘钥文件,private_key.pem为私有秘钥文件. 生成ios可引用的私有秘钥文件.pfx: 1. OpenSSL rsa -in private_key.

C#实现RSA加密和解密详解

原文:C#实现RSA加密和解密详解 RSA加密解密源码: Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ -->using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography;

通过ios实现RSA加密和解密

在加密和解密中,我们需要了解的知识有什么事openssl:RSA加密算法的基本原理:如何通过openssl生成最后我们需要的der和p12文件. 废话不多说,直接写步骤: 第一步:openssl来生成公钥和私钥证书,最后需要得到公钥证书和私钥证书 . 这是在mac OX系统下显示的证书,如果我们用文本编辑器打开它,会发现里面是----BEGIN RSA 开头  并且----END RSA 结尾的一串字符串. 第二步:我们需要在代码中写我们的加密和机密方法,加密的字符串通过公钥进行加密,加密后的字

RSA加密和解密工具类

1 import org.apache.commons.codec.binary.Base64; 2 3 import javax.crypto.Cipher; 4 import java.security.*; 5 import java.security.spec.PKCS8EncodedKeySpec; 6 import java.security.spec.X509EncodedKeySpec; 7 import java.util.HashMap; 8 import java.util

RSA加密、解密、签名、验签 DSA签名、验签

重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 重要的事情说三遍,该篇文章主要是验证JAVA的RSA签名.验签的测试代码,主要代码参考 http://xw-z1985.iteye.com/blog/1837376 下

C# 与 Java Rsa加密与解密互通

Rsa 加密标准的制定已经过去了十多年了. 这两天在看rsa 加密的文章,基本上都是在说 .net 与 java 之间的 rsa加密是不能互通的.因为项目有用到,所以花了点时间对rsa加密做了一点点了解,发现,不管是java 还是 C# 都对 rsa 的标准加密进行了实现, 是 对于标准是实现,不能互通就讲不过去了. 今天特意写了一段java 代码试了一下,发现是完全可以的. 密钥的描述: C#(.net) 中有三种方式导出密钥,一种是blob,一种是 xml 另一种是参数,其中xml 的方式是

利用openssl生成公钥、私钥 Rsa加密、解密及验证签名

//获取公钥私钥 X509Certificate2 c4 = DataCertificate.GetCertFromCerFile(path + "\\cer\\xx.pem"); string PublicKey = c4.PublicKey.Key.ToXmlString(false);//公钥 X509Certificate2 c3 = DataCertificate.GetCertificateFromPfxFile(path + "\\cer\\yy.pfx&quo

rsa加密后端解密出现中文乱码解决方法

今天被这个中文乱码的问题困扰了一天,故事是这样的: 前端rsa加密,后端去解密,但是呢有中文的时候解密出来就乱了,想了各种办法未果: 结论,既然中文乱码,我就不传中文就行了哈.在加密之前用 // 前端加密前将所有中文encoder掉 var en = encodeURIComponent(str); // 后台再转换回来就行了 String result = java.net.URLDecoder.decode(en ,"UTF-8"); 这个方法很巧妙的利用了解决url加密的工具,何

Maven项目的RSA加密及解密(用户数据)的配置流程:

做过三年多的程序员了,之前同事们都喜欢发表博客文章 而鄙人特例.  一般都是看文章,毕竟有现成的粮食,干嘛还多此一举额,呵呵. 也就没想着注册一下账号  就在前不久注册这个账号了  也是没怎更好的利用起来 : 这不心血来潮 ,突然意识到不发表些博客文章 感觉就不是一个完整的程序员  ,因此就有了以下文章  . 头一次发表  若有人查阅  如有什不足之处,多提意见,  多多见谅... 第一步: 获得RSA公钥私钥(秘钥格式:PKCS#8 测试:建议是无私钥密码的,省一些麻烦) 公钥: -----B