NodeJS实现不可逆加密与密码保存

在应用中,常常有要将用户的密码加密储存的需要。以明文保存密码有个缺点:一旦泄漏时容易造成极大的损失,可能会连带其他网站的用户、密码也造成损失(因为大多数用户在多数网站使用相同的账号与密码)。

这个泄漏可能来自于两方面:骇客入侵与运维人员监守自盗。

为了防止在密码明文泄漏,我们需要对在数据库中保存的密码字段进行不可逆加密。准确地说,是加密以后再保存到数据库中。

常用的不可逆加密算法有MD5与SHA-1。

在NodeJS中,它们的使用极为简便,直接使用官方内建的 crypto 包即可:

var clearText = '123456';// MD5 Hashrequire('crypto').createHash('md5').update(clearText).digest('hex');// 'e10adc3949ba59abbe56e057f20f883e'// SHA-1 Hashrequire('crypto').createHash('sha1').update(clearText).digest('hex');// '7c4a8d09ca3762af61e59520943dc26494f8941b'

登录后复制

当用户注册时,将用户提交的密码先不可逆加密,然后将密文保存在数据库内。

当用户登录时,将用户提交的密码先以相同方式加密,然后与数据库中的密文比对,来判断密码的正误。

理论上有无数个密码对应同一个Hash值,不过不用过于担心被撞表的风险,因为相比之下,你的Web服务器与数据库可能会在泛洪攻击中先行崩溃。

相关推荐:

javascript – 一些网站在用户提交登录时将密码框中的密码用js进行了一次不可逆加密,然后提交。这样做有必要么?有什么好处和坏处?

javascript – 一些网站在用户提交登录时将密码框中的密码用js进行了一次不可逆加密,然后提交。这样做有必要么?有什么好处和坏处?

javascript – 一些网站在用户提交登录时将密码框中的密码用js进行了一次不可逆加密,然后提交。这样做有必要么?有什么好处和坏处?

以上就是NodeJS实现不可逆加密与密码保存的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2780986.html

(0)
上一篇 2025年3月8日 16:11:35
下一篇 2025年3月8日 16:11:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • javaScript"=="和"==="的区别

    不管是html还是php都有运算符,对于javascript中比较运算符,可能大家用的比较多的是“==”、对于“===”很多人可能很陌生,那么他们究竟有什么区别呢? === 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的…

    编程技术 2025年3月8日
    200
  • node.js博客项目开发经验分享

    本文主要给大家总结了node.js博客项目开发的相关步骤以及知识点分享,有兴趣的朋友参考下,希望能帮助到大家。 需要安装的模块 body-parser 解析post请求 cookies 读写cookie express 搭建服务器 mark…

    编程技术 2025年3月8日
    200
  • nodejs读写excel内容的方法

    本文主要和大家介绍了nodejs简单读写excel内容的方法,简单分析了nodejs常见的读写excel模块,并结合实例形式分析了nodejs读写excel具体操作技巧,希望能帮助到大家。 支持读写Excel的node.js模块 node-…

    编程技术 2025年3月8日
    200
  • 两种JS实现密码强度的正则表达式方法

    本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全。并分别给出了两个方案的解析和测试程序。一般大家可以根据自己的项目的实际需要,自行定义自己的密码正则约定。   前言 用户注册时,都会用到密码正则校验。要写出正确的正则表达式…

    2025年3月8日
    200
  • 使用vue.js路由后失效如何解决

    新学了vue.js中的路由 在之前写的vue的demo上加上了简单的路由例子(来自vue-router 2),但是加上点击后只有地址栏变化,内容并不变.且之前用jquery写的一些效果也失效了.最后找到原因是因为同一个id被启动了两次(第一…

    编程技术 2025年3月8日
    200
  • JavaScript必须知道的基础知识

    这次给大家带来JavaScript必须知道的基础知识,JavaScript必须知道的基础知识有哪些,下面就是实战案例,一起来看一下。 脚本语言最重要的几个部分: 数据类型  运算符  控制语句  数组   方法(函数) 一、基础知识 关键字…

    编程技术 2025年3月8日
    200
  • angularjs的缓存详解

    这次给大家带来angularjs的缓存详解,使用angularjs缓存的注意事项有哪些,下面就是实战案例,一起来看一下。 一、什么是缓存 一个缓存就是一个组件,它可以透明地存储数据,以便未来可以更快地服务于请求。 缓存能够服务的请求越多,整…

    编程技术 2025年3月8日
    200
  • js的原型及原型链详解

     这次给大家带来js的原型及原型链详解,使用js的原型及原型链详解的注意事项有哪些,下面就是实战案例,一起来看一下。 我们创建的每个函数都有一个 prototype (原型)属性,这个属性是一个指针,指向一个原型对象,而这个原型对象中拥有的…

    2025年3月8日
    200
  • JavaScript的字符串怎样使用

    这次给大家带来javascript的字符串怎样使用,javascript的字符串怎样使用的注意事项有哪些,下面就是实战案例,一起来看一下。 charAt()            获取字符串中特定索引处的字符; toupperCase() …

    编程技术 2025年3月8日
    200
  • JavaScript之优化DOM

    这次给大家带来JavaScript之优化DOM,JavaScript之优化DOM的注意事项有哪些,下面就是实战案例,一起来看一下。 优化DOM得从重绘和重排讲起,long long ago… 1、重绘和重排 1.1 重绘和重排是…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论