我需要知道是否可以使用RSA,证书和那些东西,或者只有特定类型的文件可以签名,以数字方式签署任何类型的文件.所有这些,使用
PHP.
例如:纯文本文件可以用数字签名吗?图像怎么样(png,jpeg,bmp)?
我不需要用图形签名“附加”图像.
谢谢您的帮助.
使用
phpseclib,a pure PHP RSA implementation(更新
here):
<?PHP include('Crypt/RSA.PHP'); $rsa = new Crypt_RSA(); extract($rsa->createKey()); $plaintext = 'terrafrost'; $rsa->loadKey($privatekey); $signature = $rsa->sign($plaintext); $rsa->loadKey($publickey); echo $rsa->verify($plaintext,$signature) ? 'verified' : 'unverified'; ?>
与CLI openssl类似,如下所示:
openssl dgst -sha1 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -out signature.txt -sign privatekey.txt plaintext.txt openssl dgst -sha1 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -prverify privatekey.txt -signature signature.txt plaintext.txt