您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

RSA2是啥?PHP-RSA2签名验证怎么实现?

2024/3/25 14:54:45发布19次查看
php rsa2 签名算法什么是rsa2?rsa2是在原来sha1withrsa签名算法的基础上,新增了支持sha256withrsa的签名算法。
该算法在摘要算法上比sha1withrsa有更强的安全能力。
sha1withrsa的签名算法会继续提供支持,但为了您的应用安全,强烈建议使用sha256withrsa的签名算法。
开发平台算法名称标准签名算法名称备注
rsa2 sha256withrsa (强烈推荐使用),强制要求rsa密钥的长度至少为2048
rsa sha1withrsa 对rsa密钥的长度不限制,推荐使用2048位以上
那些公司在使用?一些大型公司的开发平台,比如支付宝、新浪微博。
创建私钥、公钥//生成原始 rsa私钥文件
openssl genrsa -out rsa_private_key.pem 1024
//将原始 rsa私钥转换为 pkcs8格式
openssl pkcs8 -topk8 -inform pem -in rsa_private_key.pem -outform pem -nocrypt -out private_key.pem
//生成rsa公钥
openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
//我们将私钥rsa_private_key.pem用在服务器端,公钥发放给android跟ios等前端。
php-rsa2签名验证class rsa2{    private static $private_key = 'rsa_private_key.pem 内容';    private static $public_key  = 'rsa_public_key.pem 内容';    /**     * 获取私钥     * @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 = '')    {        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                    );    }}
php 调用require_once rsa2.php;$rsa2 = new rsa2();$data = 'my data'; //待签名字符串$strsign = $rsa2->createsign($data);      //生成签名var_dump($strsign);$is_ok = $rsa2->verifysign($data, $sign); //验证签名var_dump($is_ok);
推荐学习:《php视频教程》
以上就是rsa2是啥?php-rsa2签名验证怎么实现?的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product