php接口数据加密、解密、验证签字代码实例
php接口数据加密、解密、验证签名代码实例
php接口数据加密、解密、验证签名
<?php/** * 数据加密,解密,验证签名 * @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);//设置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();//设置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私钥加密数据$rsa->loadKey($privatekey);$ciphertext = $rsa->encrypt($plaintext);//使用RSA公钥解密数据$rsa->loadKey($publickey);echo $rsa->decrypt($ciphertext);
每当你讲任何涉及到钱财事务等交易问题时,需要特别注意安全问题的考虑,例如开发一个论坛或者是一个购物车等。
扩展阅读
《PHP实用问题解决案例》系列技术文章整理收藏
1PHP汉字拼音转换和公历农历转换
2php购物车实现方法
3PHP实现格式化文件数据大小显示的方法
4PHP+jquery实时显示网站在线人数的方法
5PHP 实现判断用户是否手机访问
6PHP转义Json里的特殊字符的函数
7php基于socket实现SMTP发送邮件的方法
8PHP查询快递信息的方法
9PHP简单获取视频预览图的方法
10php接口数据加密、解密、验证签名
11php计算指定目录下文件占用空间的方法
12php通过递归方式复制目录和子目录的方法
13php中通过DirectoryIterator删除整个目录的方法
14PHP生成迅雷、快车、旋风等软件的下载链接代码实例
15PHP中文乱码分类及解决办法大全
16php从数组中随机选择若干不重复元素的方法
17PHP文件上传问题总结——文件大小检测以及大文件上传处理
18如何修改PHP的memory_limit限制
19php判断一个请求是ajax请求还是普通请求的方法
20PHP超牛逼无限极分类生成树方法
21长微博生成(将html转化为图片)原理浅析
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 1楼qq2291738886昨天 20:51
- 2291738886

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
![Active Directory 使用者和電腦遺失 [以 3 種方式修復]](https://img.php.cn/upload/article/000/465/014/168196830849131.png?x-oss-process=image/resize,m_fill,h_207,w_330)
ActiveDirectory使用者和電腦(ADUC)遺失是許多WindowsPro使用者報告的最令人沮喪的問題之一。 ADUC是一個令人難以置信的MMC管理單元,它使管理員能夠管理MicrosoftActiveDirectory。但是,由於某種原因,它在Windows伺服器或Enterprise/Pro版本中缺失。讓我們深入了解它丟失的原因以及我們如何修復它。 Windows11是否有ActiveDirectory? ActiveDirectory是任何想要管理遠端

昨天看到一篇英文文章[1],展示如何用Python 來實現RSA 演算法,程式碼的邏輯與前文一文搞懂RSA 演算法一樣,不太熟悉RSA 的朋友可以看一下一文搞懂RSA 演算法,裡面對什麼是RSA,RSA 的數學原理進行了說明,並舉了一個簡單的例子,可以說是全知乎最容易讀懂RSA 的文章了(這話來自讀者評論)。這篇英文提供的程式碼我運行了下,發現不能加密中文,於是就修改了下加解密的函數,讓其支援中文加解密。今天的文章就分享如何用 Python 來實現 RSA 加解密的這個過程,幫助你建立

如何利用PHP和GMP進行大整數的RSA加密和解密演算法RSA加密演算法是一種非對稱加密演算法,廣泛應用於資料安全領域。它基於兩個特別大的素數和一些簡單的數學運算,實現了公鑰加密和私鑰解密的過程。在PHP語言中,可以透過GMP(GNUMultiplePrecision)函式庫來實現大整數的計算,結合RSA演算法實現加密和解密功能。本文將介紹如何利用PHP和GMP函式庫來

如何使用PHP和GMP實現RSA加密和解密演算法RSA加密演算法是一種非對稱加密演算法,廣泛應用於資訊安全領域。在實際應用中,常常需要使用程式語言來實作RSA加密和解密演算法。 PHP是一種常用的伺服器端腳本語言,而GMP(GNUMultiplePrecision)是一種高精度數學計算庫,可以幫助我們進行RSA演算法中所需的大數運算。本文將介紹如何使用PHP和GMP

如何利用Python寫出RSA加密演算法?引言:RSA是一種非對稱加密演算法,廣泛應用於資訊安全領域。在現代通訊中,RSA加密演算法常用於加密和解密敏感資料。本文將介紹如何使用Python編寫RSA加密演算法,並提供具體的程式碼範例。安裝Python函式庫在開始編寫RSA加密演算法之前,需要先安裝Python的加密函式庫。可以使用以下命令安裝:pipinstallrsa生成

RSA非對稱加密技術是目前最受歡迎且安全的加密方式之一。 PHP作為一種廣泛應用的程式語言,在實現RSA加密方面也有著獨特的優勢。本文將為讀者介紹如何使用PHP實現RSA非對稱加密技術。一、什麼是RSA演算法RSA演算法是一種非對稱加密技術,它通常用於資料加密和數位簽章。它的安全性主要基於一個數論難題,在極短時間內對超大整數進行因數分解的難度。 RSA演算法的加密串流

美國國家標準與技術研究院 (NIST) 經過近十年的工作,最終確定了三個後量子密碼標準。此舉是為新興量子電腦破解公鑰密碼學的能力做準備

如何修復SSH在MacOSVentura上不使用RSA簽章我們將修改ssh_config檔以再次允許RSA主機金鑰,以下是如何執行此操作。開啟終端機(透過Spotlight或透過Utilities資料夾)並輸入以下命令字串:sudonano/etc/ssh/ssh_config您需要使用管理員密碼進行身份驗證。一直捲動到ssh_config檔的底部,然後將以下行加入ssh_config的底部:HostkeyAlgorithms+ssh-rsaPubkeyA
