2017-09-06 21 views
-2

我有一个小逸康形式取第1页上的CC信息,不和第2页的顺序审查和处理第3页上PHP传递密钥和加密的CC到另一页进行处理

数据和CC

我正在使用支付网关,所有存储的都是网关的授权码。但是,我无法从第2页到第3页获取加密数据。

我正在使用钠库在第2页上创建密钥和随机数,然后加密cc编号并将该信息与隐藏字段中的密钥和随机数,并传递到第3页。

由于钠创建的加密看起来是unicode,所以到达第3页时,它似乎已经改变,加上钠库随机放置的任何引号在字符串中,会导致所有内容中断并且没有解密。

我试图改变从UTF8的页面编码到Windows 1252,但并不做任何事情。表中的实际数据如下图所示。

鉴于这一切,什么是从页面移动的数据页,所以我可以保持加密,但仍然能够解密最后一页上的信息的最佳方式?

仅供参考,数据库加密也可能是这样的:

encrypted data in table

而数据从田野看起来像

b”ç-+èâ¸;ôÞRÛ†`ó¢I+.0?“òÁk 
S¯ÉyØ°ðªàB[­±,R­â–îÒÊtH#å¥08Å 
ï%Kï8ùM+è@ðgµ%‹3ÒIçüý¡In5H 
x¹Xø–ÅÓ>¥4Èbª‚ðˆoµ9…Ÿ‘¸ZMßr§ 
+2

储存于一个会话。 – ceejayoz

+2

这不是unicode,它是二进制数据。您需要使用二进制安全的方法来存储和传输数据,因为如果事情试图将其解释为文本它会被破坏。 – Sammitch

回答

2

你不应该让一个信用卡号码触摸你的服务器甚至从一个页面传递到另一个,除非你是完全符合PCI标准:https://www.pcicomplianceguide.org/faq/

你表示你有AP这是一个很好的开始。然而,任何支付网关称职将为您提供一个安全的JavaScript方法来标记的信用卡在他们的系统,所以你永远只能碰令牌。然后,您可以将令牌存储在本地以供实际使用时使用。

+0

哦,我在这个问题上没有注意到这一点。好决定。 – ceejayoz

相关问题