前端密码加密 —— bcrypt、MD5、SHA-256、盐

这篇具有很好参考价值的文章主要介绍了前端密码加密 —— bcrypt、MD5、SHA-256、盐。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 🐔 前期回顾bcrypt加密,前端悄悄告诉你:前端如何获取本机IP,轻松一步开启网络探秘之旅_彩色之外的博客-CSDN博客前端获取 本机 IP 教程https://blog.csdn.net/m0_57904695/article/details/131855907?spm=1001.2014.3001.5501

          在前端密码加密方案中,bcrypt与SHA-256都是常见的加密算法,它们各有优劣。

首先,bcrypt是一种专门用于密码哈希的算法,并且包含了自带的盐。它使用Salt和Cost参数来控制哈希的复杂程度。bcrypt的主要优点是它的计算成本可调节,可以增加破解密码的难度。这意味着即使密码遭到泄露,攻击者也需要花费很长时间和大量计算资源进行破解。因此,bcrypt常常被认为是一种更安全的密码哈希算法。

           其次,SHA-256是一种常用的加密散列函数,广泛应用于密码学和数据完整性验证领域。与bcrypt不同,SHA-256并不自带盐,因此你需要自行生成和存储盐值。SHA-256的计算速度相对较快,但不具备计算成本调节的功能。这意味着,如果密码遭到泄露,攻击者可以使用现代硬件和技术快速破解较弱的密码。

         综上所述,如果你关注密码的安全性,推荐使用bcrypt作为密码加密算法。bcrypt自带盐,并且计算成本可调节,能有效增加破解密码的难度。对于bcrypt来说,你不需要自行生成盐值,它会在哈希过程中自动处理。

        然而,在前端密码加密方案中,加密只是整个安全体系的一部分。你还需要考虑其他方面的安全性,比如传输的加密、防止XSS攻击、账号锁定等等。因此,在设计密码加密方案时,请综合考虑所有安全要素,并遵循最佳实践。

   

    安全性不仅取决于哈希算法本身,还取决于其使用方式和上下文。

目录

😷 MD5

🛹 SHA-256 + 盐值

🤖 源码位置

🌍 bcrypt (推荐)

😷  谢谢观看


😷 MD5

        MD5是一种广泛用于数据校验和加密的算法。它接受一个输入(通常是消息或数据)并生成一个128位(16字节)的哈希值作为输出。

MD5算法通过将输入数据分成固定大小的块,并对每个块进行一系列的运算来生成哈希值。生成的哈希值具有以下特点:

1. 不可逆性:无法从哈希值反推出原始输入数据。


2. 相同输入生成相同哈希值:对于相同的输入数据,无论执行多少次,都会生成相同的哈希值。


3. 哈希冲突可能性:不同的输入数据可能会生成相同的哈希值,这称为哈希冲突。

        由于MD5算法存在一些安全漏洞,例如容易被碰撞攻击和预映像攻击,因此不再推荐用于安全敏感的应用。在需要更高级别的数据安全性时,推荐使用更强大和安全性更高的哈希算法,如SHA-256、SHA-512等。

🛹 SHA-256 + 盐值

        SHA-256(Secure Hash Algorithm 256-bit)是一种密码学安全散列函数,它接受任意长度的输入数据,并生成一个256位(32字节)的哈希值作为输出。

       SHA-256是SHA-2系列中的一种算法,是SHA-224和SHA-512之间的中间版本。它是由美国国家安全局(NSA)设计,广泛应用于数据完整性校验、数字签名、密码学协议等领域。

       与MD5相比,SHA-256提供了更高的安全性和更好的抗碰撞能力。它具有以下特点:

1. 不可逆性:无法从哈希值反推出原始输入数据。


2. 相同输入生成相同哈希值:对于相同的输入数据,无论执行多少次,都会生成相同的哈希值。


3. 哈希冲突可能性极低:不同的输入数据生成相同哈希值的可能性极低,可以被认为是可以忽略不计的。

       SHA-256广泛应用于密码学和信息安全领域,例如在数字证书、SSL/TLS握手过程、密码存储和验证等方面。它提供了更强大的数据完整性保护和安全性,是目前常用的哈希算法之一。

          加盐是指在密码哈希过程中引入一个随机生成的字符串,称为盐(salt),并将其与密码进行组合后再进行哈希计算。这个盐值会与每个用户的密码单独关联,并且将其存储在数据库中。 加盐可以增加密码哈希的复杂度,提高密码的安全性,即使两个用户使用相同的密码,由于使用了不同的盐值,其哈希结果也会有所区别。这样即使黑客获得了哈希值,也很难通过暴力破解找到原始的密码。

1:首先,安装 js-sha256库: 

pnpm install js-sha256

2:在您的Vue组件中引入js-sha256 

import { sha256 } from 'js-sha256';

3:在需要使用SHA256哈希的地方,调用 sha256 函数并加盐,传入要哈希的字符串作为输入:

import { sha256 } from 'js-sha256';

const generateSalt = () => {
	const randomBytes = new Uint8Array(16);
	crypto.getRandomValues(randomBytes);
	return Array.from(randomBytes, (byte) =>
		byte.toString(16).padStart(2, '0')
	).join('');
};

const salt = generateSalt();
console.log('!这里输出 🚀 ==>:', salt);

const password = 'userPassword';
const saltedPassword = salt + password;
const hashedPassword = sha256(saltedPassword);
console.log('!这里输出 🚀 ==>:', hashedPassword);

可以将其用作数据验证、密码存储等用途,关于安全性,除了使用 js-sha256 库之外,还建议采取以下措施:

  • 使用HTTPS协议来保护传输数据的安全性。
  • 在前端进行输入验证和过滤,以确保只有有效和合法的数据被传递给哈希函数。
  • 对于密码存储和认证,最好使用专门的密码哈希函数和密码学方案,如bcrypt、scrypt或Argon2等。
  • 仔细保护密钥和敏感数据,避免将它们明文存储在前端代码或客户端浏览器中。

 SHA256哈希函数本身并不能防止所有安全问题,还需要综合考虑其他因素来确保系统的安全性,如合理的安全策略、用户身份验证和授权等。

🤖 源码位置

bcrypt加密,前端

bcrypt加密,前端

bcrypt加密,前端

🌍 bcrypt (推荐)

pnpm install bcrypt

请确认您使用的 NodeJS 版本是稳定版本;目前不支持不稳定版本,使用不稳定版本时创建的问题将被关闭。

请至少升级到 v5.0.0  bcrypt依赖

bcrypt加密,前端

import bcrypt from 'bcrypt';

/**
 * 生成哈希密码
 * @param myPlaintextPassword 明文密码
 * @param saltRounds 盐值生成的轮数,默认为10
 * @returns 哈希密码
 */
export const returnBcrypt = (myPlaintextPassword: string, saltRounds?: number): string => {
	// 技术 1(在单独的函数调用上生成盐和哈希):
	// const salt = bcrypt.genSaltSync(saltRounds);
	// const hash = bcrypt.hashSync(myPlaintextPassword, salt);

	// 技术 2(自动生成盐和哈希):
	const hash = bcrypt.hashSync(myPlaintextPassword, saltRounds);
	return hash;
};

 🤖 源码位置

bcrypt加密,前端

😷  谢谢观看

bcrypt加密,前端

 _______________________________  期待再见  _______________________________文章来源地址https://www.toymoban.com/news/detail-753976.html

到了这里,关于前端密码加密 —— bcrypt、MD5、SHA-256、盐的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openssl做文件处理(base64,MD5,sha256等)

    这次使用openssl,发现openssl不仅可以用来做加密和解密,实际上也可以用来做文件的处理,比如base64转码、解码,文件md5的计算等。实现这些,即可以从命令行去做,也可以通过代码去实现。 1. 命令行操作         1. base64转码、解码                转码:         

    2024年02月11日
    浏览(42)
  • 在前端对登录密码进行加密,md5+盐值

    场景:前端制定规则账号密码,后端不进行参与,完全就是前端进行校验 缺点:对于现在网络发达的时代,大部分人随便攻击你的网站就可以看到你的账号密码这样就可以轻松进入你的网站、不安全。 优点:基本没有,除非就是临时搭建 不需要后端 当然这是我开发时候的场

    2024年02月09日
    浏览(61)
  • uniapp安卓签名证书生成,签名证书的SHA1,SHA256,MD5获取

    uniapp安卓证书生成有两种方式,一种是去dcloud开发者中心生成证书,另一种是安装jre环境,自己生成证书 第一种 dcloud生成证书 去该项目对应的应用处,生成证书需要等几分钟,生成后可以查看证书信息 第二种 自己生成 先安装jre,再配置一下环境变量 jre8下载地址 去D盘添加

    2024年02月16日
    浏览(64)
  • Android 应用签名证书的SHA1、MD5、SHA256值在哪获取?

    SHA1值分为发布版和调试版。MD5、SHA256与SHA1的获取是一样的。 调试版就是我们平时开发测试时用的默认签名文件。这个默认的签名文件一般是在c盘的用户名目录下的.android文件夹内。 默认文件就是  debug.keystore 获取调试版的SHA1值 : 回车后即可看到调试版的SHA1值了。

    2024年02月12日
    浏览(60)
  • Android创建签名文件,并获取签名文件MD5,SHA1,SHA256值

    一、创建Android签名文件         使用Android Studio开发工具,可视化窗口进行创建 第一步:点击AndroidStudio导航栏上的 Build→Generate Signed Bundle / APK 第二步:选择APK选项    第三步:创建签名文件 第四步:输入创建签名的文件的各内容信息 点击ok,即可完成签名的文件的创建

    2024年02月07日
    浏览(60)
  • Android studio获取证书的MD5/SHA1/SHA-256以及公钥的方法

    Android studio 获取MD5 SHA1 SHA-256 值命令:./gradlew signingReport Android studio 获取公钥:keytool -export -alias key0 -keystore key.keystore -file zhengshu.cer 一、获取MD5 SHA1 SHA-256 值 在Android项目中执行命令:./gradlew signingReport 然后以上操作执行完成之后,搜索你的证书名称,找到以下数据: 二、获

    2024年02月03日
    浏览(76)
  • kali/windows/burpsuite/Python下计算md5,sha1,sha256,base64的值

    对明文进行加密使之变成密文时,常用到的有 md5,sha1,sha256,base64      情景 :假设对“202222804198”这串数字进行加密,windows和kali桌面上已存在一个“1.txt”的文件,文件内容为该数字( 文件中除了需要加密的内容外不要有空行,回车的存在 ) 首先简单了解certutil的用法

    2024年02月11日
    浏览(46)
  • uniapp离线打包 如何查看公钥 /android studio 导出秘钥证书/获取MD5 SHA256 SHA1值

    使用uniapp离线打包 或者 根据 云端证书 获取 秘钥证书 app申请阿里云备案 在android studio 查看 离线打包的的MD5 SHA256 SHA1值 提示:根据证书或者签名 获取 MD5 SHA256 SHA1值 公钥 or 1.根据云端获取 生成证书 查看公钥 2.android studio 获取MD5 SHA256 SHA1值 3.如果没有获取到MD5 file = setting

    2024年01月18日
    浏览(72)
  • Java工具集 Hex、Hmac算法(MD5、SHA1、SHA256、SHA384、SHA512)、雪花算法SnowflakeId、redis基于Springboot工具类

    🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 专栏 描述 Java项目实战 介绍Java组件安装、使用;手写框架等 Aws服务器实战 Aws Linux服务器上操作nginx、git、JDK、Vue Jav

    2024年04月09日
    浏览(78)
  • 使用Win10自带的PowerShell命令校验文件和镜像文件的Hash值(MD5、SHA1/256等)正确性

    通常为了保证我们从网上下载的文件的完整性和可靠性,我们把文件下载下来以后都会校验一下MD5值或SHA1值(例如验证下载的Win10 ISO镜像是否为原始文件),这一般都需要借助专门的MD5检验工具来完成。但其实使用Windows系统自带的Windows PowerShell运行命令即可进行文件MD5、S

    2024年02月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包