我正在为一个电子商务网站结帐页面。在该站点中,人们输入了他们的信用卡信息,并以AES加密格式将其保存到订单中。当他们支持的所有都是VISA时,这可以很好地工作。现在他们支持万事达卡和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,现在效果很好。感谢您的所有帮助/建议!

09-19 22:37