RSA2 est basé sur l'algorithme de signature SHA1WithRSA d'origine et ajoute un nouvel algorithme de signature qui prend en charge SHA256WithRSA.
Cet algorithme a des capacités de sécurité plus fortes que SHA1WithRSA en termes d'algorithme de digestion.
L'algorithme de signature SHA1WithRSA continuera d'être pris en charge, mais pour la sécurité de votre application, il est fortement recommandé d'utiliser l'algorithme de signature SHA256WithRSA.
<?php /** * Created by PhpStorm. * User: webff * Date: 2017/5/12 * Time: 20:03 */class Rsa2 { private static $PRIVATE_KEY ="私钥内容"; private static $PUBLIC_KEY ="公钥内容"; /** * 获取私钥 * @return bool|resource */ private static function getPrivateKey() { $privKey = self::$PRIVATE_KEY; return openssl_pkey_get_private($privKey); } /** * 获取公钥 * @return bool|resource */ private static function getPublicKey() { $publicKey = self::$PUBLIC_KEY; return openssl_pkey_get_public($publicKey); } /** * 创建签名 * @param string $data 数据 * @return null|string */ public function createSign($data = '') { // var_dump(self::getPrivateKey());die; if (!is_string($data)) { return null; } return openssl_sign($data, $sign, self::getPrivateKey(),OPENSSL_ALGO_SHA256 ) ? base64_encode($sign) : null; } /** * 验证签名 * @param string $data 数据 * @param string $sign 签名 * @return bool */ public function verifySign($data = '', $sign = '') { if (!is_string($sign) || !is_string($sign)) { return false; } return (bool)openssl_verify( $data, base64_decode($sign), self::getPublicKey(), OPENSSL_ALGO_SHA256 ); } }
$rsa2 = new Rsa2();$data = 'mydata'; //待签名字符串 $strSign = $rsa2->createSign($data); //生成签名 $is_ok = $rsa2->verifySign($data, $strSign); //验证签名
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!