欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php簽名數(shù)據串,php 簽名

php如何做數(shù)字簽名?

概括就是:“學會用PHP的openssl擴展!!”

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站建設、網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的防城港網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!

1、先用openssl_pkey_new()函數(shù)產生一個私鑰pri_key,

2、用openssl_csr_new()函數(shù)以私鑰pri_key 產生一個信用證csr

3、用openssl_sign()函數(shù)以私鑰pri_key對一段數(shù)據data產生一個數(shù)字簽名signature。

4、用openssl_pkey_get_public()函數(shù)從信用證csr中獲得公鑰pub_key

5、把公鑰pub_key、數(shù)字簽名signature、數(shù)據data發(fā)給對方。

6、對方收到3項后,用openssl_verify()函數(shù)或其他驗證工具,驗證簽名。

7、對方驗證有效,開始使用你的信息data。驗證無效,再找你扯皮。

整個過程的雙方可以互換,即可讓對方出具三項,你來驗證。

PHP+JS如何實現(xiàn)網上簽名功能?

通過 js canvas給用戶進行簽名,提交時候生成圖片/base64.

PHP接收圖片/base64保存到服務器對應路徑,把路徑入庫.

用PHP如何實現(xiàn)數(shù)字簽名啊··跪求高人指點···

以下是資料:

php中數(shù)字簽名與校驗

1. 先用php生成一對公鑰和私鑰

$res = openssl_pkey_new();

openssl_pkey_export($res,$pri);

$d= openssl_pkey_get_details($res);

$pub = $d['key'];

var_dump($pri,$pub);

輸出依次為私鑰和公鑰的pem字串,如:

string(916) "-----BEGIN PRIVATE KEY-----

MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKs124okAnX5jh1Q

wsETi80b4ZyYlYUSsAtvS7ZG+GSLAox24TKNwWIy5cUdKfK/5QEJjZ0S8LjRSYCG

to9LkwQTQrKY8BBXVCQQS3VXRqz4on9bmcGSyLMK6vQxt9NnJpk6aBmJE7z35+8z

TTLwdUbYaMAcYqrsYDfgBSNBgwbDAgMBAAECgYBvolJfpFMmcW3El6AlHIWPW5qj

7KmxdxnqmssXMvdLN4iV5f24ZM2vJdjDydxMN+st3fjEblEfcPcoIq5uiKx2bnO3

f9g0yt+qUoXdz4LK6jV1NfuAZDcnBm7CXfE7BDREgyiRg4ZXIvp4L0Y2zBMdFTmg

LKkXb2M1P3pK53UbwQJBANupqPXFQjdHvAa3voT+UI8OhmLbw/Vyh6Ii1glwMfyq

VS2lAakj9d1hqLYZvw+eNeZBnzZNPuMJg5aj/WKUqasCQQDHiFLS7Yb1rbhfjmRt

ZL4zXuvX1hVjTNo2TeZwPniGpYa+QHcauDDep5C9q//n+D+ZtkbkECxpOVhrUHSI

KO9JAkEApl3lHd98uymVevEHVurWUMMLfSw9SlSn7WC9AwD6mwbW5G8oxtX5jOY+

RU1Sq52D7RSeZR40FvhJtXoWmudFaQJAc8E+a2epF/YENEtjL6N2RE8Y+0oTdlwr

a72dphhXy6VTmiPD9RhOIZ2MdrzF5Uk7fG0mi0Bmw1SlWvx93lABIQJBALXPeoNa

b4dQkRkfqCHtyrWOeRcC1Y6FyTfNj+cRBzdIcmFc21hxj6HKy2M6/XGI3rAE5L+B

mmlSmN1enhoCUqc=

-----END PRIVATE KEY-----

"

string(272) "-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrNduKJAJ1+Y4dUMLBE4vNG+Gc

mJWFErALb0u2RvhkiwKMduEyjcFiMuXFHSnyv+UBCY2dEvC40UmAhraPS5MEE0Ky

mPAQV1QkEEt1V0as+KJ/W5nBksizCur0MbfTZyaZOmgZiRO89+fvM00y8HVG2GjA

HGKq7GA34AUjQYMGwwIDAQAB

-----END PUBLIC KEY-----

"

2. 保存好自己的私鑰,把公鑰可以公開給別人。如果需要對某數(shù)據進行簽名,證明那數(shù)據是從你這里發(fā)出的,就需要用私鑰:

$res = openssl_pkey_get_private($pri);

if (openssl_sign('hello', $out, $res))

var_dump(base64_encode($out));

上例中 $pri 為自己的私鑰,'hello' 為待簽名的數(shù)據,如果簽名成功,最后輸出為base64編碼后的簽名,如:

j19H+C/NQEcyowezOQ+gmGi2UoPJNXyJ+KwpkEzJ5u4qaRD3cY4qhfFfIosypypwJTJ4LjRYOIPNQMQm6ICj2nMdGfn/p/pp7il+xGz2aUWdOXkJFgIc/PGC95C9sLH04Tc6QSuV5IMd9rjBjyv+ieokMLFm9cmtN2hGag9vq1s=

3. 別人收到你的數(shù)據 'hello' 和簽名字串,想驗證這是從你發(fā)來的數(shù)據的話,用你公開的公鑰驗證:

$sig = base64_decode($sig);

$res = openssl_pkey_get_public($pubkey);

if (openssl_verify('hello', $sig, $res) === 1)

; // 通過驗證

上例中剛開始的 $sig 為之前你base64編碼過的簽名, $pubkey 為你的公鑰

php中這種簽名使用的是RSA算法;數(shù)字簽名可以在 單點登錄 等系統(tǒng)中派上用場。

PHP 做簽名時出現(xiàn)這個,怎么回事

您的公鑰,私鑰錯誤了。

通過openssl工具生成RSA的公鑰和私鑰(opnssl工具可在互聯(lián)網中下載到,也可以點此下載無線接口包,里面包含此工具)

打開openssl文件夾下的bin文件夾,執(zhí)行openssl.exe文件:

1)生成RSA私鑰

輸入“生成命令.txt”文件中:“genrsa -out rsa_private_key.pem 1024”,并回車得到生成成功的結果,如下圖:

此時,我們可以在bin文件夾中看到一個文件名為rsa_private_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN RSA PRIVATE KEY-----開頭,-----END RSA PRIVATE KEY-----結尾的沒有換行的字符串,這個就是原始的私鑰。

2)把RSA私鑰轉換成PKCS8格式

輸入命令:pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt,并回車當前界面中會直接顯示出生成結果,這個結果就是PKCS8格式的私鑰,如下圖:

右鍵點擊openssl窗口上邊邊緣,選擇編輯→標記,選中要復制的文字(如上圖),

此時繼續(xù)右鍵點擊openssl窗口上邊邊緣,選擇編輯→復制,

把復制的內容粘土進一個新的記事本中,可隨便命名,只要知道這個是PKCS8格式的私鑰即可。

3)生成RSA公鑰

輸入命令:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem,并回車,得到生成成功的結果,如下圖:

此時,我們可以在bin文件夾中看到一個文件名為rsa_public_key.pem的文件,用記事本方式打開它,可以看到-----BEGIN PUBLIC KEY-----開頭,-----END PUBLIC KEY-----結尾的沒有換行的字符串,這個就是公鑰。

PHP怎么做銀聯(lián)的支付接口調用

PHP做銀聯(lián)支付接口調用問題

//在工商支付接口之前要找到工行提供的接口文件級dll文件

//將訂單簽名數(shù)據公鑰加密提供給工行指定頁面

//組織要簽名的數(shù)據串

$src="ICBC_PERBANK_B2C1.0.0.0".$infomer["merid"].$infomer["meracct"].$returnaddress."HS".$ddnumber.$amount."0010".$nowtime."0";

$com=new com('ICBCEBANKUTIL.B2CUtil');

$rc=$com-init("c:\WINDOWS\user.crt","c:\WINDOWS\user.crt","c:\WINDOWS\user.key","11111111");

$ssrc=$com-signC($src, strlen($src)); //訂單簽名數(shù)據

$rc=$com-verifySignC($src,strlen($src), $ssrc, strlen($ssrc));

$cert=$com-getCert(1); //商城證書公鑰

//將商戶證書存儲到c:\WINDOWS目錄下,然后創(chuàng)建form表單,將指定的數(shù)據提交到工行指定的網頁中

!--支付寶支付的接口操作,提交的數(shù)據--

td width="100"a href="{$link}"img src="images/sy_19.gif" width="90" height="25" border="0"/a/td

!--——————————————————--

!--工行支付的接口操作,提交的數(shù)據--

form action="" method="post" name="form_bank"

input name="interfaceName" type="hidden" value="ICBC_PERBANK_B2C"/

input name="interfaceVersion" type="hidden" value="1.0.0.0"/

input name="orderid" type="hidden" value="{$ddnumber}"/

input name="amount" type="hidden" value="{$amount}"/

input name="curType" type="hidden" value="001"/

input name="merID" type="hidden" value="{$merid}"/

input name="merAcct" type="hidden" value="{$meracct}"/

input name="verifyJoinFlag" type="hidden" value="0"/

input name="notifyType" type="hidden" value="HS"/

input name="merURL" type="hidden" value="{$returnaddress}"/

input name="resultType" type="hidden" value="0"/

input name="orderDate" type="hidden" value="{$nowtime}"/

input name="merSignMsg" type="hidden" value="{$ssrc}" /

input name="merCert" type="hidden" value="{$cert}" /

/form

當前文章:php簽名數(shù)據串,php 簽名
網站URL:http://chinadenli.net/article16/dsehdgg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序外貿網站建設標簽優(yōu)化搜索引擎優(yōu)化電子商務ChatGPT

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網站優(yōu)化排名