日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php中rsa加密及解密和签名及验签

發(fā)布時(shí)間:2023/12/13 php 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php中rsa加密及解密和签名及验签 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  加密的內(nèi)容長(zhǎng)度限制為密鑰長(zhǎng)度少11位,如128位的密鑰最多加密的內(nèi)容為117個(gè)長(zhǎng)度。

  公鑰加密
    $public_content=file_get_contents(公鑰路徑);
    $public_key=openssl_get_publickey($public_content);
    
    $original_str='待加密的內(nèi)容';
    $original_arr=str_split($original_str,117);  //折分
    foreach($original_arr as $o)
    {
      $sub_enc=null;
      openssl_public_encrypt($o,$sub_enc,$public_key);
      $original_enc_arr[]=$sub_enc;
    }
    openssl_free_key($public_key);
    $original_enc_str=base64_encode(implode('',$original_enc_arr));//最終網(wǎng)絡(luò)傳的密文
  私鑰解密
    $private_content=file_get_contents(私鑰路徑);
    $private_key=openssl_get_privatekey($private_content);

    $original_enc_str=base64_decode(密文);
    $orig_dec_str='';
    for($i=0;$i<strlen($original_enc_str)/128;$i++)
    {
       $data=substr($original_enc_str,$i*128,128);
       openssl_private_decrypt($data,$decrypt,$private_key);
       $orig_dec_str.=$decrypt;
    }
    $orig_dec_str為最后解密出來(lái)的。

  注:私鑰加密及公鑰解密同理。
-----------------------------------------------------------------------------------------------------------------------
  私鑰簽名
    $private_content=file_get_contents(私鑰路徑);
    $private_key=openssl_get_privatekey($private_content);

    $original_str='';//原數(shù)據(jù)
    openssl_sign($original_str,$sign,$private_key);
    openssl_free_key($private_key);
    $sign=base64_encode($sign);//最終的簽名    

  公鑰驗(yàn)簽
    $public_content=file_get_contents(公鑰路徑);
    $public_key=openssl_get_publickey($public_content);

    $sign=base64_decode($sign)'';//得到的簽名
    $original_str='';得到的數(shù)據(jù)
    $result=(bool)openssl_verify($original_str,$sign,$public_key);
    openssl_free_key($public_key);
    $result為真時(shí)簽驗(yàn)通過(guò),假時(shí)未通過(guò)

    

轉(zhuǎn)載于:https://www.cnblogs.com/bwteacher/p/5757361.html

總結(jié)

以上是生活随笔為你收集整理的php中rsa加密及解密和签名及验签的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。