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公私钥对,并进行相应的加密和解密操作。

    上一篇:PHP 的标准输入与输出
    下一篇:php 生成证书 签名及验签

    发表评论

    最新留言

    很好
    [***.229.124.182]2026年06月14日 09时36分54秒