PHP RSA MD5 加签以及验证签名

public function isValid($data = '', $signature = '', $publicKey = '')
{
    if (empty($data) || empty($signature)) {
        return false;
    }
    $public_content = wordwrap($publicKey, 64, "\n", true);
    $public_key = "-----BEGIN PUBLIC KEY-----\r\n" . $public_content . "\r\n-----END PUBLIC KEY-----";
    if (empty($public_key)) {
        echo "Public Key error!";
        return false;
    }
    $pkeyid = openssl_get_publickey($public_key);
    if (empty($pkeyid)) {
        echo "public key resource identifier False!";
        return false;
    }

    $ret = openssl_verify($data, base64_decode($signature), $pkeyid, OPENSSL_ALGO_MD5);
    if ($ret === 1) {
        echo "success";
        return true;
    } else {
        echo "fail";
        return false;
    }
}
public function sign($data = '', $private_key)
{

    $private_content = wordwrap($private_key, 64, "\n", true);

    $key = "-----BEGIN RSA PRIVATE KEY-----\r\n" . $private_content . "\r\n-----END RSA PRIVATE KEY-----";

    $private_key = openssl_get_privatekey($key);

    openssl_sign($data, $sign, $private_key, OPENSSL_ALGO_MD5);

    openssl_free_key($private_key);

    return base64_encode($sign); // 加密后数据转换为base64
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值