php接口數(shù)據(jù)加密、解密、驗(yàn)證簽名代碼實(shí)例
<?php/** * 數(shù)據(jù)加密,解密,驗(yàn)證簽名 * @edit http://www.lai18.com * @date 2015-07-08 **///header('Content-Type: text/xml; charset=utf-8');include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.'phpsec'.DIRECTORY_SEPARATOR.'Math'.DIRECTORY_SEPARATOR.'BigInteger.php');include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.'phpsec'.DIRECTORY_SEPARATOR.'Crypt'.DIRECTORY_SEPARATOR.'AES.php');include_once(dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.'phpsec'.DIRECTORY_SEPARATOR.'Crypt'.DIRECTORY_SEPARATOR.'RSA.php');//密文$crypttext = 'v66YKULHFld2JElhm/J9qik2Edr1JHdZIc/k/OesU2GbTX2usXyvF4jGvzvoihrrE8FsfKmllmjsMIjO5fdrS/FD20bYFii4JW3BO3bzshXmz6AEs2DWwG4sK9mNojfOC0IsMoV311X5/JlgUoQXkDy4F5HHpYE9d/xGb0g2XE/hnGSSy2cpQcvQtBlBmixwSckNhsEG92lovlOz8ULwkqG5o7x+qB7P/EMII/WaFAXBJXDXvZX7lmGcOgon6wLhKJLGXorP6BIxOg6LGc6Ux7BAt3i9+0lujNgxIq/sDsl23hsr3yOUpV5C5a813nrHx4HJyd/hBT1UvIUml+eTmJwWCpSfs2cvxIUr0CE57JAZVyXjK13shK3IsZHLPPsm/JcDCrdy0Co/d5uIGJAdzXdsQ56xsju+tlvnA1J6yq2tDIfYK/x6k911A5WXLKYxztD1nq+bTYN3Gv/WFfrzVtgWQBrh06ihS2cwvna0S9EV/YPmhnAjJmrX4trNr9NXQ9xaZaW4lGRg87U5QDV+nQjj1THk0XHFc69N9g2+DsAGyEs9tK6U0ZQ72hJZqZhBCDH1UKw0PLyIhJdxpgPPOWGp8/QVVU2julTeKunvgAAEc3n+GoZfqjsCDi1S6T2MTnjWYWNoFRBhvEZFD/revgpasTOzDQa5NqR1B+mUF70r6uw6MWLJ7cT9Tz3jq+CA';$aeskey = base64_decode('qZe60QZFxuirub2ey4+7+Q==');//AES解密,采用ECB模式$aes = new Crypt_AES(CRYPT_MODE_ECB);//設(shè)置AES密鑰$aes->setKey($aeskey);//解密AES密文$plaintext = $aes->decrypt(base64_decode($crypttext));echo $plaintext;echo '<hr />';//AES加密明文//echo $aes->encrypt($plaintext);//rsa公鑰$publickey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCffOeIVYut9jW5w1L5uKX4aDvd837a8JhaWm5S8YqNQfgEmfD9T+rDknXLqMT+DXeQAqGo4hBmcbej1aoMzn6hIJHk3/TfTAToNN8fgwDotHewsTCBbVkQWtDTby3GouWToVsRi1i/A0Vfb0+xM8MnF46DdhhrnZrycERBSbyrcwIDAQAB';//echo base64_decode($publickey);//rsa簽名$signature = 'XHin4uUFqrKDEhKBD/hQisXLFFSxM6EZCvCPqnWCQJq3uEp3ayxmFuUgVE0Xoh4AIWjIIsOWdnaToL1bXvAFKwjCtXnkaRwUpvWrk+Q0eqwsoAdywsVQDEceG5stas1CkPtrznAIW2eBGXCWspOj+aumEAcPyYDxLhDN646Krzw=';//echo base64_decode($signature);$rsa = new Crypt_RSA();//設(shè)置RSA簽名模式 CRYPT_RSA_SIGNATURE_PSS or CRYPT_RSA_SIGNATURE_PKCS1$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);//var_dump($rsa->createKey());//生成RSA公鑰、私鑰//extract($rsa->createKey());//使用RSA私鑰生成簽名//$rsa->loadKey($privatekey);//$signature = $rsa->sign($plaintext);//使用RSA公鑰驗(yàn)證簽名echo $plaintext;$rsa->loadKey(base64_decode($publickey));echo $rsa->verify($plaintext, base64_decode($signature)) ? 'verified' : 'unverified';echo '<hr />';//生成RSA公鑰、私鑰//var_dump($rsa->createKey());extract($rsa->createKey());//使用RSA私鑰加密數(shù)據(jù)$rsa->loadKey($privatekey);$ciphertext = $rsa->encrypt($plaintext);//使用RSA公鑰解密數(shù)據(jù)$rsa->loadKey($publickey);echo $rsa->decrypt($ciphertext);
《PHP實(shí)用問(wèn)題解決案例》系列技術(shù)文章整理收藏?
1PHP漢字拼音轉(zhuǎn)換和公歷農(nóng)歷轉(zhuǎn)換
2php購(gòu)物車(chē)實(shí)現(xiàn)方法
3PHP實(shí)現(xiàn)格式化文件數(shù)據(jù)大小顯示的方法
4PHP+jquery實(shí)時(shí)顯示網(wǎng)站在線人數(shù)的方法
5PHP 實(shí)現(xiàn)判斷用戶是否手機(jī)訪問(wèn)
6PHP轉(zhuǎn)義Json里的特殊字符的函數(shù)
7php基于socket實(shí)現(xiàn)SMTP發(fā)送郵件的方法
8PHP查詢快遞信息的方法
9PHP簡(jiǎn)單獲取視頻預(yù)覽圖的方法
10php接口數(shù)據(jù)加密、解密、驗(yàn)證簽名
11php計(jì)算指定目錄下文件占用空間的方法
12php通過(guò)遞歸方式復(fù)制目錄和子目錄的方法
13php中通過(guò)DirectoryIterator刪除整個(gè)目錄的方法
14PHP生成迅雷、快車(chē)、旋風(fēng)等軟件的下載鏈接代碼實(shí)例
15PHP中文亂碼分類(lèi)及解決辦法大全
16php從數(shù)組中隨機(jī)選擇若干不重復(fù)元素的方法
17PHP文件上傳問(wèn)題總結(jié)——文件大小檢測(cè)以及大文件上傳處理
18如何修改PHP的memory_limit限制
19php判斷一個(gè)請(qǐng)求是ajax請(qǐng)求還是普通請(qǐng)求的方法
20PHP超牛逼無(wú)限極分類(lèi)生成樹(shù)方法
21長(zhǎng)微博生成(將html轉(zhuǎn)化為圖片)原理淺析
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。
PHP怎么學(xué)習(xí)?PHP怎么入門(mén)?PHP在哪學(xué)?PHP怎么學(xué)才快?不用擔(dān)心,這里為大家提供了PHP速學(xué)教程(入門(mén)到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)