zoukankan      html  css  js  c++  java
  • 公钥-私钥

    //创建公钥和私钥
    $res=openssl_pkey_new(array('private_key_bits' => 512)); #此处512必须不能包含引号。
    //提取私钥
    openssl_pkey_export($res, $private_key);
    //生成公钥
    $public_key=openssl_pkey_get_details($res);
    
    $public_key=$public_key["key"];
    //显示数据
    var_dump($private_key);
    var_dump($public_key);
    
    //要加密的数据
    $data = "Web site:http://www.xnbzg.cn";
    echo '加密的数据:'.$data."n";
    
    //私钥加密后的数据
    openssl_private_encrypt($data,$encrypted,$private_key);
    
    //加密后的内容通常含有特殊字符,需要base64编码转换下
    $encrypted = base64_encode($encrypted);
    echo "私钥加密后的数据:".$encrypted."n";  
    
    //公钥解密  
    openssl_public_decrypt(base64_decode($encrypted), $decrypted, $public_key);
    echo "公钥解密后的数据:".$decrypted,"n--n";  
      
    //----相反操作公钥加密 
    openssl_public_encrypt($data, $encrypted, $public_key);
    $encrypted = base64_encode($encrypted);  
    echo "公钥加密后的数据:".$encrypted."n";
      
    openssl_private_decrypt(base64_decode($encrypted), $decrypted, $private_key);

    //私钥解密 echo "私钥解密后的数据:".$decrypted."n";

     

     

     运行结果

    [root@kermit ~]# php -f makersa.php 
    string(522) "-----BEGIN PRIVATE KEY-----
    MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEA2tIoxjY4S02v7HVn
    g9b20Q8Cjbq6dnAAbC1naNwGZzEEqmR4GKNvTFEdp+O8e945lKa79goCYjdVoyxL
    S3SKjQIDAQABAkEAhpxaMPUR1GFKI/BlaZlH5HuTWpTQOCPWXrXfs4YG+lrtwd8P
    vEKSJeRNCWWpY0zwOoDQQBB9JBO6wlnsI1JcAQIhAPeDqBlLX1Q2F//h1OdPYUIR
    1r0VbqiAOMTmCzmzSRTBAiEA4lKr5r5RC0+VraZxq1W/UBuBuQYKcLAUQ4l2a40N
    7M0CIC56389YMx+qRNl9fDCv3HC+zteVNcGYypBXLtZ4D4pBAiAUa3MZEYjMZXTS
    wxa0Z7soJiMxJ2tfuXNKmKd3krVz7QIgDWHPu3yTDhYbK2nV41iDuJ/oSZnZb7S8
    9uGYFrj+ZyE=
    -----END PRIVATE KEY-----
    "
    string(182) "-----BEGIN PUBLIC KEY-----
    MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANrSKMY2OEtNr+x1Z4PW9tEPAo26unZw
    AGwtZ2jcBmcxBKpkeBijb0xRHafjvHveOZSmu/YKAmI3VaMsS0t0io0CAwEAAQ==
    -----END PUBLIC KEY-----
    "
    加密的数据:Web site:http://www.xnbzg.cn
    私钥加密后的数据:PKbSJnCiWqNB58fXG9aBXyDTudd/GnEYQtG7mK80/+Z3IaGu5wORL5Cwq7l9b00Xtao6w2tnboEz+D+O/c4m+w==
    公钥解密后的数据:Web site:http://www.xnbzg.cn
    -------------------------------
    公钥加密后的数据:Pq0Sm4pWSrF7wtckqbdjAaU7H002zdfw5ZmL4wMyTdzqxwS9bNyw5k4DFnZZKCKN26gu3bhikd5G7zXl22y1rQ==
    私钥解密后的数据:Web site:http://www.xnbzg.cn

  • 相关阅读:
    win10下Anaconda3在虚拟环境python_version=3.5.3 中配置pyspark
    在Pycharm上编写WordCount程序
    ASP.NET Core读取AppSettings
    如何高逼格读取Web.config中的AppSettings
    C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题
    C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
    Sql Server 里的向上取整、向下取整、四舍五入取整的实例!
    ECMAscript5 新增数组内函数
    js 严格模式
    js中数组去重
  • 原文地址:https://www.cnblogs.com/jiaoaozuoziji/p/7476721.html
Copyright © 2011-2022 走看看