相关疑难解决方法(0)

如何在PHP中对文件进行数字签名

我在我的数据库中创建了一个用户表,其中包含用于保存用户信息的不同列.我还添加了两列public_keyprivate_key.当用户注册时,他的信息将被插入到表中.加上我正在使用:

// Create the keypair
$res=openssl_pkey_new();

// Get private key
openssl_pkey_export($res, $privatekey);

// Get public key
$publickey=openssl_pkey_get_details($res);
$publickey=$publickey["key"];
Run Code Online (Sandbox Code Playgroud)

创建一个随机密钥对并将其提供给用户,以便每个用户都有一个密钥对.我希望我的用户具有数字签名功能,因此当他们上传文件时,他们会签名.

我决定首先签署一个示例文件(msg.txt)以查看是否可以然后继续.它看起来很直截了当:

openssl_pkcs7_sign("msg.txt", "signed.txt", "signing_cert.pem",
array("private_key.pem", "mypassphrase"),
array()
);
Run Code Online (Sandbox Code Playgroud)

问题是:sign_cert.pem和private_key.pem是什么?我将生成的公钥粘贴在signing_cert.pem中,将私有密钥粘贴在private_key.pem中,但是我看到了这个错误:

Warning: openssl_pkcs7_sign() [function.openssl-pkcs7-sign]: error getting 
private key in /home/ofathian/public_html/msc/ebook/mine/assymetric-test.php 
on line 40
Run Code Online (Sandbox Code Playgroud)

任何意见表示赞赏.

php digital-signature

4
推荐指数
1
解决办法
3万
查看次数

标签 统计

digital-signature ×1

php ×1