php的openssl sign,openssl_sign

$data="Beeeeer is really good.. hic...";// You can get a simple private/public key pair using:

// openssl genrsa 512 >private_key.txt

// openssl rsa -pubout public_key.txt

// IMPORTANT: The key pair below is provided for testing only.

// For security reasons you must get a new key pair

// for production use, obviously.$private_key= <<

MIIBOgIBAAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6zxqlVzz0wy2j4kQVUC4Z

RZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQJAL151ZeMKHEU2c1qdRKS9

sTxCcc2pVwoAGVzRccNX16tfmCf8FjxuM3WmLdsPxYoHrwb1LFNxiNk1MXrxjH3R

6QIhAPB7edmcjH4bhMaJBztcbNE1VRCEi/bisAwiPPMq9/2nAiEA3lyc5+f6DEIJ

h1y6BWkdVULDSM+jpi1XiV/DevxuijMCIQCAEPGqHsF+4v7Jj+3HAgh9PU6otj2n

Y79nJtCYmvhoHwIgNDePaS4inApN7omp7WdXyhPZhBmulnGDYvEoGJN66d0CIHra

I2SvDkQ5CmrzkW5qPaE2oO7BSqAhRZxiYpZFb5CI

-----END RSA PRIVATE KEY-----EOD;$public_key= <<

MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANDiE2+Xi/WnO+s120NiiJhNyIButVu6

zxqlVzz0wy2j4kQVUC4ZRZD80IY+4wIiX2YxKBZKGnd2TtPkcJ/ljkUCAwEAAQ==

-----END PUBLIC KEY-----EOD;$binary_signature="";// At least with PHP 5.2.2 / OpenSSL 0.9.8b (Fedora 7)

// there seems to be no need to call openssl_get_privatekey or similar.

// Just pass the key as defined aboveopenssl_sign($data,$binary_signature,$private_key,OPENSSL_ALGO_SHA1);// Check signature$ok=openssl_verify($data,$binary_signature,$public_key,OPENSSL_ALGO_SHA1);

echo"check #1: ";

if ($ok==1) {

echo"signature ok (as it should be)\n";

} elseif ($ok==0) {

echo"bad (there's something wrong)\n";

} else {

echo"ugly, error checking signature\n";

}$ok=openssl_verify('tampered'.$data,$binary_signature,$public_key,OPENSSL_ALGO_SHA1);

echo"check #2: ";

if ($ok==1) {

echo"ERROR: Data has been tampered, but signature is still valid! Argh!\n";

} elseif ($ok==0) {

echo"bad signature (as it should be, since data has beent tampered)\n";

} else {

echo"ugly, error checking signature\n";

}?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值