PHP创建签名

Har*_*nan 1 php security cryptography

我在想一种创建数字签名的方法.我需要这个,因为一些文件需要由授权用户签署,就像授权用户一样,并且接收用户必须看到它来自授权,并且如果发生争议,发布的用户必须验证它是他的文件.

为此,我试图在图像中上传具有实际签名的图像.

问题:我可以从签名图像中获取唯一值吗?

我想从图像中获取独特的价值,然后openssl_sign使用签名图像中加密形式的唯一值作为私钥.

通过这种方式,发布用户可以签名并验证它是他的文件.但是接收用户将需要一个键来打开文件.

问题:我可以向用户提供密钥(只有接收用户可用的密钥)才能打开该加密文件吗?

我搜索过但很难找到这些东西.请解释这些事情,如果我的逻辑错误,请更好地了解.

谢谢

Sco*_*ski 5

首先,数字签名是一个特定的加密术语.这是一种公钥加密形式,您可以使用私钥对邮件进行签名,任何人都可以使用您的公钥验证签名.

数字签名不是:

  • 加密哈希函数,例如MD5(尽管它们在内部使用哈希函数)
  • 数字相当于传统的纸笔签名

如果您出于法律原因需要相当于纸笔签名的"数字",请咨询律师.在法律问题上投掷加密技术几乎不是一个好举措,特别是因为大多数法律专业人士甚至不知道RSA代表什么,更不用说它是如何工作的.

如果事实证明你只需要加密数字签名,请抓住libsodium并使用crypto_sign_detached().PHP为您提供的内容更加安全(openssl_sign()RSA + SHA1).