问题描述
在.NET System.Security.Cryptography
命名空间有,我可以使用的信用卡详细信息的加密算法,而令人困惑的集合。这是最好的?
The .NET System.Security.Cryptography
namespace has a rather bewildering collection of algorithms that I could use for encryption of credit card details. Which is the best?
有明确需要保密为相对较短的串。
It clearly needs to be secure for a relatively short string.
编辑:我在英国,在那里我明白了就好了存储加密的信用卡信息,只要三位CVV号码不会保存。并感谢所有伟大的响应。
I'm in the UK, where I understand we're OK storing encrypted credit card details so long as the three-digit CVV number is never stored. And thanks all for the great responses.
推荐答案
没有犯罪,但问题是有点误导。有没有银弹解决方案。我建议读上密码一般,然后做一些威胁建模。有些问题(绝非一个COM prehensive列表),你应该问自己:
No offense, but the question is a little "misguided". There is no "silver bullet" solution. I would recommend to read up on cryptography in general and then do some threat modeling. Some questions (by no means a comprehensive list) you should ask yourself:
- 是模块做加密之一,需要对其进行解密(在这种情况下,使用对称加密),或将其发送数据到其他模块(在另一台计算机上),这将使用它(在这种情况下,你应该考虑公共密钥加密)
- 您想要做什么防范?有人访问该数据库,但不具有源$ C $ C(在这种情况下,您可以硬c中的加密密钥直接进入源$ C $)?有人监听你的本地网络(你应该考虑透明的解决方案,如IPSec)的?有人偷你的服务器(它可以在数据中心,即使发生 - 在这种情况下,全磁盘加密,应考虑) ?
- 你真的需要保留的数据?你不能直接把它传递给信用卡处理器,并删除它后,你确认?你不能在本地存储它在一个cookie或Flash LSO的客户端?如果您将它存储在客户端,请确保您在服务器端把它在一个cookie之前对其进行加密。此外,如果您使用的是饼干,请确保你让他们只允许HTTP。
- 是否足够的数据进行比较的平等(即客户端给我的数据是相同的数据,我有)?如果是的话,考虑将它的哈希值。由于信用卡号码相对较短,并使用符号组减少,应该为每个哈希之前生成一个独特的盐。
后来修改的:请注意,标准加密算法来自同一类别(例如3DES和AES - 无论是对称块cyphers)是相当的强度。大多数(商业)系统未破,因为有人bruteforced他们的加密,而是因为他们的威胁建模是不够细致(或平出,他们没有任何)。例如,你可以加密所有的数据,但如果你碰巧有一个面向公众的Web界面,这是容易受到SQL注入,它不会帮你了。
Later edit: note that standard encryption algorithms from the same category (for example 3DES and AES - both being symmetric block cyphers) are of comparable strength. Most (commercial) systems are not broken because somebody bruteforced their encryption, but because their threat modelling was not detailed enough (or flat out they didn't have any). For example you can encrypt all the data, but if you happen to have a public facing web interface which is vulnerable to SQL injection, it won't help you much.
这篇关于是否有一个最佳的.NET算法信用卡加密?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!