Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.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
C# 信用卡号应该存储为字符串还是整数?_C#_Java - Fatal编程技术网

C# 信用卡号应该存储为字符串还是整数?

C# 信用卡号应该存储为字符串还是整数?,c#,java,C#,Java,嗯。。。想想看 我应该将在我的网站上输入的信用卡号存储为字符串还是整数 我的意思是,它们是由数字组成的,这让我觉得它是一个整数。。。但我不会对它们做数学运算,所以也许字符串更合适 编辑:所以在加密之前,我必须存储在某个点输入的数字。我可能应该说得更具体一点——我并不是在用明文或其他方式将它们保存在数据库中——很高兴看到每个人都很认真:)也不是。您至少应该将它们保存为使用AES加密的字节数组,或使用业界认可的密钥存储进行等效加密的字节数组 Windows通过数据保护API提供了很多这方面的功能:

嗯。。。想想看

我应该将在我的网站上输入的信用卡号存储为字符串还是整数

我的意思是,它们是由数字组成的,这让我觉得它是一个整数。。。但我不会对它们做数学运算,所以也许字符串更合适


编辑:所以在加密之前,我必须存储在某个点输入的数字。我可能应该说得更具体一点——我并不是在用明文或其他方式将它们保存在数据库中——很高兴看到每个人都很认真:)

也不是。您至少应该将它们保存为使用AES加密的字节数组,或使用业界认可的密钥存储进行等效加密的字节数组

Windows通过数据保护API提供了很多这方面的功能:

为了您自己和您的客户,请学习加密财务凭证的适当标准,或雇佣了解这些标准的人

考虑到您的编辑:

C#有一个你应该使用的类。我不相信有Java等价物,但我可能错了

编辑:为了子孙后代……


PCI DSS(数据安全标准)定义了信用卡详细信息的存储、传输和处理准则。任何考虑如何设计管理信用卡数据的解决方案的人都应该在这里阅读,并咨询行业专家:

信用卡号码将是一个字符串,我不是肯定的,但我觉得有些卡可以以0开头,您不希望丢失任何前导零。另外,您应该对其进行加密。如果没有,恶意用户可能会通过cookie、数据包嗅探器和其他东西拦截卡号

由于信用卡号的加法或乘法没有意义,INT不适用。使用字符串。

信用卡信息(或任何可能被误用的个人信息)不应以原始形式(字符串、整数等)存储。始终对其进行加密,以便信息得到保护,以防您的网站遭到黑客攻击。

您不应该存储任何信用卡号码。如果您正在与支付提供商集成,请直接将信息传递给他们,如果您以后需要收费,他们应该能够提供某种令牌。除非您的服务器是兼容的,否则您可能正在违反规则

注意

  • java中int的范围是-2147483648直到2147483647(您可以通过打印Integer.MAX\u值和Integer.MIN\u值进行检查)
  • 信用卡号有16位数字
  • 不需要对信用卡号进行计算
  • 您不应在未加密的情况下存储信用卡(以避免号码被盗)。通常加密的结果可以包含字母数字

基于这些事实,我认为字符串更合适(但先加密)

在存储任何信用卡信息之前,请熟悉PCI(支付卡行业)合规性的要求。这包括如何存储数字,以及可以存储多少数字。您还需要采取许多其他步骤来保护服务器的安全。

提醒我永远不要给您我的信用卡号码:)。我同意Chris Shain的回答。顺便说一句,这既不是C#也不是Java。如果有什么东西,请将其标记为数据库。感谢上帝给出了这样的答案。说得好,谢谢。诸如此类的问题让我对我所拥有的一次性使用卡服务表示感谢。但这并不能真正回答这个问题,是吗?即使使用加密,仍然存在一个问题,即加密中的明文是由二进制整数还是由ASCII数字字符串组成。(虽然这不是一个很难回答的问题;前导零是或有一天可能变得重要的最小可能性应该决定答案)。@Chris,非常正确,这是一个很好的观点。为了更清楚,我对问题进行了编辑,但这并不是我想要的答案。有可能这是一个(被误导的)家庭作业问题。在这种情况下,是的,我想答案应该是一个字符串。但我还是会写“两者都不是”,并解释原因。