zoukankan      html  css  js  c++  java
  • rsa加解密

    使用 openssl 命令生成公钥和私钥

    // 生成私钥
    # openssl genrsa -out rsa_private_key.pem 1024
    // 生成公钥
    # openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

    示例:可直接运行

    <?php
    // openssl 扩展检测
    var_dump(extension_loaded('openssl'));
     
    $prikey = openssl_pkey_get_private(file_get_contents('rsa_private_key.pem')); //私钥
    $pubkey = openssl_pkey_get_public(file_get_contents('rsa_public_key.pem')); //公钥
     
    // 明文数据
    $data = 'test-string!';
     
    /**
     * 可能会出的问题:Don't know how to get public key from this private key
     * 原因:PHP 的 openssl 扩展和 Apache 的不一致导致, 当然在命令行下运行程序则不会出现此问题
     */
    // 公钥加密
    $encrypt_data = '';
    openssl_public_encrypt($data, $encrypt_data, $pubkey);
    $encrypt_data = base64_encode($encrypt_data);
    echo $encrypt_data;
    echo '<br/>';
     
     
    // ------------------------------------------------------------
     
     
    // 私钥解密
    $encrypt_data = base64_decode($encrypt_data);
    openssl_private_decrypt($encrypt_data, $decrypt_data, $prikey);
    var_dump($decrypt_data);
  • 相关阅读:
    CF526D Om Nom and Necklace
    POJ2406 Power Strings
    POJ3461 Oulipo
    luogu P1341 无序字母对
    UOJ 117 欧拉回路
    骑马修栅栏
    vimdiff env.txt export.txt set.txt
    Linux自动执行任务
    消灭 Bug!推荐5款测试员不可不知的bug管理工具!
    Bugzilla使用手册及解决方案
  • 原文地址:https://www.cnblogs.com/xiaobiaomei/p/9414266.html
Copyright © 2011-2022 走看看