php 的rsa加密与解密
发布日期:2025-05-03 01:58:20
浏览次数:11
分类:精选文章
本文共 1666 字,大约阅读时间需要 5 分钟。
CentOS6.5系统中生成RSA公私钥对的方法
系统环境
系统:CentOS6.5
在Linux系统中,生成RSA公私钥对的过程相对简单,但需要注意每一步的操作细节。以下是详细的操作步骤。
生成RSA公私钥对的步骤
生成原始RSA私钥文件
首先,我们需要使用openssl工具生成一个原始的RSA私钥文件。以下是具体命令:openssl genrsa -out rsa_private_key.pem 1024
这条命令会生成一个1024位的RSA私钥文件rsa_private_key.pem。
将RSA私钥转换为PKCS#8格式
生成的原始RSA私钥通常是以PKCS#1格式存储的,而许多应用程序需要PKCS#8格式的私钥。以下是将原始私钥转换为PKCS#8格式的命令:openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out private_key.pem
这条命令会将原始私钥文件rsa_private_key.pem转换为PKCS#8格式,并存储在private_key.pem文件中。
生成RSA公钥文件
接下来,我们需要从原始私钥文件中提取公钥,并将其存储为一个独立的文件。以下是生成RSA公钥文件的命令:openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
这条命令会将rsa_private_key.pem中的公钥信息提取出来,并存储在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";} 注意事项
- 确保你已经安装了
openssl工具。如果没有安装,可以通过包管理器安装。 - 确保私钥文件的权限设置正确,避免被其他用户或程序访问。
- 在实际应用中,建议将密钥文件备份并加密,以防止泄露。
通过以上步骤,你可以在CentOS6.5系统中轻松生成必要的RSA公私钥对,并进行相应的加密和解密操作。
发表评论
最新留言
很好
[***.229.124.182]2026年06月14日 09时36分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP二维数组将重复键值合并重组成三维数组
2023-03-01
PHP二维数组转换为一维数组
2023-03-01
PHP二维数组重组
2023-03-01
PHP交换两个变量值
2023-03-01
php代码执行完整流程介绍
2023-03-01
PHP代码格式化工具phpcf常见问题解决方案
2023-03-01
PHP使用3DES算法加密解密字符串
2023-03-01
php使用memcached扩展的一个BUG
2023-03-01
PHP入门part1
2023-03-01
PHP内核介绍及扩展开发指南—基础知识
2023-03-01
PHP写日志fwrite和file_put_contents的区别与性能
2023-03-01
PHP函数
2023-03-01
PHP函数__autoload失效原因(与smarty有关)
2023-03-01
php函数性能优化中应注意哪些问题?
2023-03-01
PHP函数操作数字和汉字互转(100以内)
2023-03-01
PHP函数方法
2023-03-01
PHP创建目录mkdir无写入权限的问题解决方案
2023-03-01
PHP删除指定目录下的所有文件和文件夹 | 删除指定文件
2023-03-01
React Collapse Pane 项目教程
2023-03-01