• 技术文章 >后端开发 >PHP问题

    php rsa如何实现

    藏色散人藏色散人2020-07-31 10:08:52原创97

    php rsa实现的方法:首先创建“rsa_private_key.pem”和“rsa_public_key.pem”;然后判断私钥以及公钥是否是可用的;接着获取要加密的数据;最后通过base64编码转换加密后的特殊字符即可。

    推荐:《PHP视频教程

    php RSA 简单实现

    这是rsa_private_key.pem

    -----BEGIN PRIVATE KEY----- 
    MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCxsv3yAPRvIn2z 
    j5zZcFCA6qnFUVjyRDNbQA2ni1vcnTlSjP9i0FNJgpZkRaDZ0PprH8t10mXnWtVd 
    9ZujztmHYWqETgGMGkq9fOou2/naFDXXUvtz2uhcUKCUYQUNXzfJPidfjmXe01OH 
    eY8iN1X+GFo4LhumXgFIYsfBY8SKjeXgdiTl1Jhk+m+e27qRg0tD/kBVQ5vFmZmS 
    8g1QWU8RCAYi3N1UicVucLmjg3ORXkZ2jMB7DTQET8i2loGbTqpYzV5d3Ka0D8BS 
    S7SBAdaipzU4RugaqveOAd2vCXfDtf9VWvdHPTN1OxEsYaJaKAZTYt/pK61wQ0BN 
    7dJUfSBTAgMBAAECggEAGRNJAn1gAM69Ljl1yLkwowB6NH3mL0mwdY/0XVAtBlSp 
    YhzDbQ44soba8gthR1tV+wfhjh7CgoMu2LNv4w2tZI06mrDnRv3uzg5yfWpNN5ji 
    gCAVm6OoZl56SnXmYJyvIpbCt5lAhtELWHKu4AUu/UwybvsSq8dYJv7JcWDCu0pO 
    RqjRpTmL3jo3Yppw3DGFYhNGOFdurjJdFWgv7YPcSIfWokn4RBUmTEzeSWZTsnrL 
    1qsjT6Sc8DCeVJeSGjYnMnqKgRDqIxy4tMM4J6Ris32xk5a31XHGVouesI6ZQ/LZ 
    kDhbietYtF8Y8orx3L2wHPhCgzTXuxnwFbLfw7x2AQKBgQDrwzkWodq6U1y8drv8 
    HbM0Z16Ed8zXocg3YeADYtO6An7LOhTQZGtN+B2xUi3rY0YvHQB2mKlxkesKJQFk 
    wylQibFLNrzDPRLXkIIUtmMx3CeEJdwaeOWZikCBK0WPLLI6bekea+jLfhYvgBeJ 
    plwFhy9qqiUMGxmYKqZioKERKwKBgQDA89oOwzksP4KG9EDdtxGYiKzKmjUFiMWO 
    RGmWK93kb9yFCYoxwMyvOnG+LcYcT1qS4VPDYpz9OHC+bKhqTbsDpW2nNIngQMNy 
    dbhvqCsznb2O7sFL923J2oLEQruqEc6wcgVzz5+gqk4lZG5K+x4HJW+1JnZh/6K0 
    GzmOFISJeQKBgD+rmmhNT8fQKZRQMJZ24uW9IN5/iBeX/n1OdnQTpYBvmhSCXAqn 
    g/8ricFQo0wVpGem2nAs7F3afXJg6g5vUmIIvZPFdZb4kHUc9rRnSUS24wkiPF39 
    1mvv1VnM+N0gwgVbl4B6vgTuyUkMu86V2fY4OwsAZj7ttqzMn+C05qq/AoGAaFy8 
    iZWP+93SBJph50nYS49JHkAwA3FJoTxhe6b4WlEijhZt16E3VGOhF8L8T12gWKdl 
    Pd29mbyIRobQxMaMK1mzqGdjV5bP373KZyInU8CywXdjt2n5yN7WMb8Cb+c3yvmw 
    90XKSgUzRUg/23BdenIGLI3EJBc3coDzLWTtlskCgYAEpYvVasV6Xy42zJyIxUeJ 
    Jqbjm+MQkGU7Q+yLa6+1Ylt51sqIS8Mf8lp4PYYN7GpcFYKVfHIXCZDru1IyfQut 
    OSWR0pAsgQn7haMRVRjGvzjfinLy+K1llPkpafYj7rWu+z50sIr2bnuGZAGgqVt8 
    9H+p1jGHtXrt2SWVAIpyWQ== 
    -----END PRIVATE KEY-----

    这是rsa_public_key.pem

    -----BEGIN PUBLIC KEY----- 
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsbL98gD0byJ9s4+c2XBQ 
    gOqpxVFY8kQzW0ANp4tb3J05Uoz/YtBTSYKWZEWg2dD6ax/LddJl51rVXfWbo87Z 
    h2FqhE4BjBpKvXzqLtv52hQ111L7c9roXFCglGEFDV83yT4nX45l3tNTh3mPIjdV 
    /hhaOC4bpl4BSGLHwWPEio3l4HYk5dSYZPpvntu6kYNLQ/5AVUObxZmZkvINUFlP 
    EQgGItzdVInFbnC5o4NzkV5GdozAew00BE/ItpaBm06qWM1eXdymtA/AUku0gQHW 
    oqc1OEboGqr3jgHdrwl3w7X/VVr3Rz0zdTsRLGGiWigGU2Lf6SutcENATe3SVH0g 
    UwIDAQAB 
    -----END PUBLIC KEY-----

    下面只需要加载即可

    <?php
    #author:zk
    #data:2017-09-11
    #note:php rsa secret
    $public_key = file_get_contents('./rsa_public_key.pem');
    $private_key = file_get_contents('./rsa_private_key.pem');
    //这个函数可用来判断私钥是否是可用的
    $private_key = openssl_pkey_get_private($private_key);
    //这个函数可用来判断公钥是否是可用的
    $public_key = openssl_pkey_get_public($public_key);
    //要加密的数据
    $data = "这是测试";
    echo '加密的数据:'.$data.'<br>';
    //私钥加密后的数据
    openssl_private_encrypt($data,$encrypted,$private_key);
    //加密后的内容通常含有特殊字符,需要base64编码转换下
    $encrypted = base64_encode($encrypted);
    echo "私钥加密后的数据:".$encrypted.'<br>';  
    //公钥解密  
    openssl_public_decrypt(base64_decode($encrypted), $decrypted, $public_key);
    echo "公钥解密后的数据:".$decrypted.'<br>';  
      
    //----相反操作。公钥加密 
    openssl_public_encrypt($data, $encrypted, $public_key);
    $encrypted = base64_encode($encrypted);  
    echo "公钥加密后的数据:".$encrypted.'<br>';
      
    openssl_private_decrypt(base64_decode($encrypted), $decrypted, $private_key);//私钥解密  
    echo "私钥解密后的数据:".$decrypted.'<br>';

    以上就是php rsa如何实现的详细内容,更多请关注php中文网其它相关文章!

    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:rsa
    上一篇:php如何对txt文件进行修改 下一篇:如何解决php数组报错问题
    第12期线上周末培训班

    相关文章推荐

    • PHP+RSA生成密钥位数为1024位步骤详解• PHP的RSA加密解密与开发接口案例使用分析• PHP检测接口Traversable的用法详解• 用PHP实现SHA1withRSA签名、加密、验证

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网