php接口數(shù)據(jù)加密、解密、驗證簽名_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:標(biāo)準(zhǔn)PHP的AES加密算法類AES是分組密鑰,算法輸入128位數(shù)據(jù),密鑰長度也是128位。用Nr表示對一個數(shù)據(jù)分組加密的輪數(shù)(加密輪數(shù)與密鑰長度的關(guān)系如表1所列)。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰Expandedkey(i)的參與。 分享一個標(biāo)準(zhǔn)PHP的AES加密算法類,其中mcrypt_get_block_s
代碼很簡單,這里就不多廢話了,直接奉上代碼
代碼如下:
<?php
//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公鑰驗證簽名
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);
以上就是本文所述的全部內(nèi)容了,希望本代碼能給大家學(xué)習(xí)php加密解密能夠帶來些幫助。
分享:PHP實現(xiàn)通用alert函數(shù)的方法這篇文章主要介紹了PHP實現(xiàn)通用alert函數(shù)的方法,實例分析了php自定義alert函數(shù)實現(xiàn)提示信息的技巧,非常具有實用價值,需要的朋友可以參考下 本文實例講述了PHP實現(xiàn)通用alert函數(shù)的方法。分享給大家供大家參考。具體如下: 函數(shù):通用提示 參數(shù):提示訊息,類型或網(wǎng)址,窗口
相關(guān)PHP教程:
- 標(biāo)準(zhǔn)PHP的AES加密算法類
- PHP實現(xiàn)通用alert函數(shù)的方法
- PHP獲取ip對應(yīng)地區(qū)和使用網(wǎng)絡(luò)類型的方法
- javascript+php實現(xiàn)根據(jù)用戶時區(qū)顯示當(dāng)?shù)貢r間的方法
- PHP讀取txt文本文件并分頁顯示的方法
- php截取中文字符串函數(shù)實例
- php輸入數(shù)據(jù)統(tǒng)一類實例
- php簡單定時執(zhí)行任務(wù)的實現(xiàn)方法
- Yii學(xué)習(xí)總結(jié)之?dāng)?shù)據(jù)訪問對象 (DAO)
- 十幅圖告訴你什么是PHP引用
- PHP的引用詳解
- php的閉包(Closure)匿名函數(shù)詳解
- 相關(guān)鏈接:
- 教程說明:
PHP教程-php接口數(shù)據(jù)加密、解密、驗證簽名
。