gpt4 book ai didi

php - 将二进制数据存储在数据库中以确保安全

转载 作者:行者123 更新时间:2023-11-29 11:38:10 26 4
gpt4 key购买 nike

我正在努力进一步保护我的在线交易。

我用于在线交易的流程是:1. 用户生成订单2. 用户重定向至银行付款(即 paypal)3. 银行 (paypal) 联系 .php 页面 (Paypal IPN) 告诉我订单已处理完毕。4. 用户订单已处理完毕。

在我生成的每笔交易中,我都会创建一个 sha512字符串从数据中取出。我想将其存储在数据库中,以便在 PayPal IPN 联系我告诉我订单已完成时验证订单信息。

为了节省数据库空间,最近读了this answer并认为将字符串存储在二进制列中可能会很好。我的问题是如何使用 PHP 做到这一点?

假设我有一个字符串:

A99ACAF1FA7337F451C344C84F6800037F17EABBC32073ECEA6688B4BAD116BDB288B0D24DE7DD5C53E26A0B41242B2D2D065EDFDA5C16B4706CD5DC57226580

在 PHP 中,如何将其转换为二进制值以便将其存储在数据库中?它仍然会像上面的字符串一样是唯一的吗?我能想到的最好的办法是 PHP 字符串 pack ,但我不确定如何使用它。或者说使用方法是否正确。通常我会将上面的哈希值存储到 VARCHAR(512) 中但我想缩小数据库大小,512 个字符似乎是很多数据。

最佳答案

echo hash('sha512', 'hash_string', true);

第三个参数是raw_output:设置为TRUE时,输出原始二进制数据。 (doc)。由于十六进制与其二进制值之间存在一对一的对应关系,因此您不会失去“唯一性”。

长度始终是 64 字节字符串。但如果您以十六进制编写哈希值,那么它将是 128 个字符,而不是 512

关于php - 将二进制数据存储在数据库中以确保安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280082/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com