NodeJS实现不可逆加密与密码密文保存的方法

 更新时间:2018年03月16日 09:10:56   作者:IzumoRiki  
这篇文章主要介绍了NodeJS实现不可逆加密与密码密文保存的方法,简单讲述了不可逆加密与密码密文保存的原理并结合实例形式分析了nodejs相关加密操作实现技巧,需要的朋友可以参考下

本文实例讲述了NodeJS实现不可逆加密与密码密文保存的方法。分享给大家供大家参考,具体如下:

在应用中,常常有要将用户的密码加密储存的需要。

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

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

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

常用的不可逆加密算法有MD5SHA-1

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

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

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

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

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

PS:关于加密解密感兴趣的朋友还可以参考本站在线工具:

在线SHA1加密工具:
http://tools.jb51.net/password/sha1encode

MD5在线加密工具:
http://tools.jb51.net/password/CreateMD5Password

文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode

在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在线MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode

希望本文所述对大家nodejs程序设计有所帮助。

相关文章

  • 手把手带你安装多个node版本

    手把手带你安装多个node版本

    在项目开发过程中,不同项目使用的node版本不同,有时会因为node版本过高或太低,导致报错,下面这篇文章主要给大家介绍了关于安装多个node版本的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 浅谈node使用jwt生成的token应该存在哪里

    浅谈node使用jwt生成的token应该存在哪里

    早上逛某乎的时候,遇到一位同学在问这个问题,很好奇jwt的存储位置。本文详细的介绍一下,感兴趣的可以了解一下
    2021-06-06
  • 10个Node.js库帮助你优化代码和简化开发

    10个Node.js库帮助你优化代码和简化开发

    这篇文章主要介绍了10个Node.js库帮助你优化代码和简化开发,其中包括处理数组、对象、字符串库Lodash,缓存数据处理库Node-cache,解析、操作和格式化日期和时间库Moment.js,Redis操作库,发送电子邮件库Nodemailer
    2023-05-05
  • nodejs如何在typescript项目中申明全局变量

    nodejs如何在typescript项目中申明全局变量

    这篇文章主要介绍了nodejs在typescript项目中申明全局变量,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2024-05-05
  • Node koa服务器实现获取客户端ip

    Node koa服务器实现获取客户端ip

    这篇文章主要为大家详细介绍了Node koa服务器实现获取客户端ip的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下
    2025-02-02
  • Nodejs对postgresql基本操作的封装方法

    Nodejs对postgresql基本操作的封装方法

    今天小编就为大家分享一篇Nodejs对postgresql基本操作的封装方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例

    nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例

    这篇文章主要介绍了nodejs基于mssql模块连接sqlserver数据库的简单封装操作,结合实例形式分析了nodejs中mssql模块的安装与操作sqlserver数据库相关使用技巧,需要的朋友可以参考下
    2018-01-01
  • Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)

    Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)

    在 Node.JS 中进行端口扫描还是比较方便的,一般会有广播和轮询两种方式。下文重点给大家介绍node.js 扫描端口并发现局域网内的web服务器地址的方法,一起看看吧
    2017-09-09
  • NodeJS远程代码执行

    NodeJS远程代码执行

    这篇文章主要介绍了NodeJS远程代码执行方法的相关资料,需要的朋友可以参考下
    2016-08-08
  • 深入理解nodejs中Express的中间件

    深入理解nodejs中Express的中间件

    一个Express应用就是在调用各种中间件。可见中间件在web应用开发中的重要性,有兴趣的可以了解一下
    2017-05-05

最新评论