php - AES、MySql 和头痛

标签 php mysql aes

我正在为电子商务网站制作结帐页面。在该网站上,人们输入他们的信用卡信息,然后以 AES 加密格式将其保存到订单中。当他们只支持 VISA 时,这很好用。现在他们支持 MasterCard 和 Discover(16 位数字),它不再有效。插入查询如下所示:

"insert into order_master set ccnum = AES_ENCRYPT(:ccnum, 'password') ...";

我也试过另一种格式:

"insert into order_master (ccnum, ...) values (AES_ENCRYPT(:ccnum, 'password')..)";

两者都无济于事。有人可以尝试指出我做错了什么的正确方向吗?我什至吐出了条目查询以确保正确插入了值等等,什么也没有。这非常令人沮丧,我希望有人可以帮助我。谢谢!

最佳答案

事实证明,客户端将列的数据类型设置为 varchar (20) - 这未能捕获所有二进制数据(加密前只有 16 个字符的卡号)。我让他将长度更改为 255,现在效果很好。感谢您的所有帮助/建议!

关于php - AES、MySql 和头痛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1878134/

相关文章:

mysql - 按共同关联的数量排序,即使没有(rails)

php - 发送 : How to fetch record from Database without considering case sensitive?

javascript - 与 Javascript 相比,执行 AES 加密是 Ruby

javascript - 使用 JavaScript 和 PHP 发送电子邮件

javascript - 生成列表中的 $_GET 在显示页面上未定义

php - 无法使用模式 r : fopen(): AWS Elastic Beanstalk 打开

php - 当页面第一次加载时触发事件,此后没有其他时间

c++ - 解密 AES 字符串

encryption - 使用 AES 和 Base64 加密字符串

php - 如何将数组值保存为mysql数据库中的每条记录