当前位置: 首页 > Web前端 > HTML

保护电子商务网站最常用的密码——哈希方法

时间:2023-03-28 19:22:33 HTML

对于电子商务网站所有者和提供商业软件应用程序的人来说,密码哈希变得比以往任何时候都更加重要。保护用户数据不再是一项建议,而是一项要求,因为消费者将他们的安全和数据的安全放在首位。如果黑客或恶意行为者获得了对您的密码数据库的访问权限,并且这些密码以明文形式存储,则入侵者将获得对您网站或应用程序上每个用户帐户的访问权限。避免这种情况的推荐方法是通过密码散列。电子商务黑客如果没有适当的网络安全协议,电子商务商店所有者就有可能将自己和他们的客户置于危险之中。我们不需要回顾2013年的Target黑客攻击事件就可以了解黑客攻击如何以及为何成为电子商务平台的主要威胁。也就是说,较小的电子商务商店比大公司面临更大的风险,因为它们针对网络犯罪分子的安全协议较少。小型电子商务商店可能面临的两种最大的网络犯罪类型包括网络钓鱼攻击(以信用卡号和登录信息等用户数据为目标)和信用卡欺诈(试图提取信用卡号并进行非法销售)市场。正如您现在可能知道的那样,您的电子商务商店的安全性必须是您最关心的问题,并且需要您采用多种安全措施,包括密码散列。什么是密码哈希?要了解目前如何在内容管理系统和Web应用程序中使用密码散列,我们必须定义一些关键内容。当您对密码进行哈希处理时,它基本上会将密码转换为加扰表示或“字符串”,您可以使用它来避免将密码存储为纯文本,以便恶意行为者可以找到它们。散列在内部将值与加密密钥进行比较以实际解释密码。还应该注意的是,散列是一种不同于加密的加密安全形式。这是因为加密旨在通过两步过程对消息进行加密和解密,但正如我们刚刚介绍的那样,散列旨在从文本中的前一个字符串生成一个字符串,这可能随输入的不同而有小而大的差异。您将看到的另一种散列方法是所谓的加盐,它只是将字符添加到散列密码的末尾,以使其更难解码。与腌制类似的是所谓的胡椒粉。这还会在密码末尾添加一个附加值。加盐有两种不同的版本,第一种是如上所述将值添加到密码末尾,第二种是添加到密码的值在位置和值上都是随机的。这样做的好处是它使蛮力攻击和某些其他攻击变得非常困难。当前使用的散列算法根据平台的不同,您将看到用于密码的各种散列方法。这也可能因内容管理系统而异。最不安全的哈希算法之一称为MD5,它创建于1992年。正如您可以从1992年创建的算法中想象的那样,它并不是最安全的哈希算法。该算法使用比传统加密标准低得多的128位值,因此这意味着它不是一个非常安全的加密选项,但更常用于不太安全的要求,例如文件下载。您将看到的下一个常见哈希算法是SHA-1。该算法由美国国家安全局于1993年创建。他们等了几年才发布该算法,虽然它是在MD5之后一年才开发的,但在当时要安全得多。您可能仍会看到一些密码以这种方式散列,但不幸的是,该标准已被确定为不再安全。SHA-2创建于2001年,是国家安全局发布的SHA1的升级版。和它的前身一样,它并不是由NSA专门创建的,只是在几年前才被标准化。它仍然是一种安全散列密码的可行方法。您将看到的另一种密码哈希算法是//medium.com/@danboterhoven/why-you-should-use-bcrypt-to-hash-passwords-af330100b861"target="_blank"rel="nofollownoopener"style="框大小:边框框;颜色:RGB(0、176、255);文字修饰:无;背景颜色:透明;touch-action:manipulation;">Bcrypt。BCrypt算法包含一个Salt,旨在防止暴力攻击。BCypt用来使暴力攻击更加困难的工具之一是减慢暴力操作或程序的速度恶意行为者可能正在使用。这意味着如果尝试使用暴力攻击,您可能需要数年才能成功。与bCrypt类似的是Scrypt。这种加密哈希算法还使用盐等额外防御来扩展密钥(旨在添加随机数据到哈希函数输入以创建更独特的输出),并使暴力攻击几乎不可能,而Scrypt的另一个优点是它被设计为在被暴力攻击时占用大量计算机内存。这意味着它有一个额外的措施来延长暴力攻击成功所需的时间我们在内容管理系统和Web应用程序上看到的最后一个密码哈希算法是PBKDF2。此密码哈希算法由RSALaboratories创建,并且与前面提到的算法一样,还为哈希添加了扩展以使暴力破解变得更加困难。存储散列密码在散列过程之后,在任何算法完成其工作之后,密码的输出将是其自身的扰乱十六进制表示。这意味着网站或应用程序将存储一长串字母和数字,以防黑客获得该信息的访问权限。所以换句话说,如果黑客进入您的电子商务网站并找到用户密码数据库,那么他将无法使用它们直接登录用户帐户。相反,他或她将不得不解释随机字母和数字来弄清楚您的密码实际上是什么。多个网站密码有时您会遇到电子商务商店用户可能需要在不同服务之间共享密码的情况。这方面的一个例子可能是,如果您有一个单独构建的移动设备应用程序,可能使用与基于Web的版本不同的技术或平台。在这种情况下,您需要跨多个平台同步散列密码,这可能会非常复杂。幸运的是,有些公司可以帮助跨平台同步散列密码。一个例子是FoxyCart,这是一种允许在应用程序之间同步散列密码的服务。