Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP&;JS加密/签名并验证二维码_Javascript_Php_Security_Hash_Public Key Encryption - Fatal编程技术网

Javascript PHP&;JS加密/签名并验证二维码

Javascript PHP&;JS加密/签名并验证二维码,javascript,php,security,hash,public-key-encryption,Javascript,Php,Security,Hash,Public Key Encryption,我有一个php脚本,可以生成一个。此代码将从JavaScript中的PhoneGap应用程序中读取。到目前为止,这一切正常,但我想保护二维码,这样其他人就无法生成其他有效代码 我的第一个想法是在二维码中添加一个散列数据。但是普通的散列函数不是很安全。对于好的散列函数,我没有找到JavaScript的实现。第二个想法是使用公钥/私钥加密,但这里同样存在JavaScript问题 另一个大问题是二维码应该很简单。长时间加密将使小QR码无法读取 保护二维码的好方法是什么?在您的ID中添加一个使用共享秘密

我有一个php脚本,可以生成一个。此代码将从JavaScript中的PhoneGap应用程序中读取。到目前为止,这一切正常,但我想保护二维码,这样其他人就无法生成其他有效代码

我的第一个想法是在二维码中添加一个散列数据。但是普通的散列函数不是很安全。对于好的散列函数,我没有找到JavaScript的实现。第二个想法是使用公钥/私钥加密,但这里同样存在JavaScript问题

另一个大问题是二维码应该很简单。长时间加密将使小QR码无法读取


保护二维码的好方法是什么?

在您的ID中添加一个使用共享秘密的哈希,如下所示:

$qrcontent = $id . md5($id . $secret);

因此,要创建新的
$qrcontent
,需要知道
$secret
。有一些简单的散列,比如crc32,因此您不需要一个完全实现的javascript md5函数。您可以定义散列的长度/安全性。

如果您正在用PHP生成和测试代码,为什么您要关心javascript空间中的散列或加密?请后退一步,不要再考虑QR码——这只是一些数据的图形表示,恰好可以被各种扫描仪读取。和其他数据一样,它们仍然只是普通数据。开始考虑加密数据字符串,只考虑加密字符串。二维码只是表示二维码的一种方式。@MarcB好吧,我知道它只是数据。但这些细节造成了我无法忽视的局限性。否则我只会使用PGP。当然,我可以在JavaScript中运行PGP,但加密的数据太大了。@PiTheNumber:如果您不加密,而只是使用不可猜测的ID呢?如果您使用的是数据库,则不使用ID,而是添加另一列,其中包含一些“随机”唯一生成的字符串。这样就没人知道你的顺序了。我希望这是有道理的?认真地我的答案不是选择理想的散列函数(它总是取决于用例),而是将它们应用于一个问题。我认为,即使使用一个简短的、不完整的哈希函数和一个秘密,仍然比许多其他解决方案要好,更改哈希函数很简单。是的,当然。:)我不是故意说得那么粗鲁。我还考虑添加一个散列。