Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >密码加密方式

密码加密方式

作者头像
Java架构师必看
发布于 2021-12-18 01:37:55
发布于 2021-12-18 01:37:55
2K00
代码可运行
举报
文章被收录于专栏:Java架构师必看Java架构师必看
运行总次数:0
代码可运行

对称加密

特点:加密解密效率高、速度快、空间占用小、加密强度高 缺点:参与多方都需要持有密钥、一旦有一个人泄露则安全性遭到破坏、另外再不容安全通道下分发密钥也是个问题。 代表算法:DES、3DES、AES、IDEA等等 DES:其密钥长度为56位+8位校验 破解方式:暴力破解 3DES:3重DES操作 算法不能靠累积增加防御力 AES:分组算法、分组长度为128、192、256位三种、其优势在于 速度快 整个过程可以数学化描述、目前尚未有效破解手段 适合场景:适用于大量数据加解密、不能用于签名场景 需要提前分法密钥

非对称加密

介绍:即公钥+私钥 公钥是公开的、私钥是个人持有的 代表算法:RSA、EIGamal、椭圆算法 ECC RSA:经典的公钥算法 安全性未知 EIGamal:利用了模运算下求离散对数困难的特性 椭圆曲线算法:现代备受关注的算法系列,基于对椭圆曲线上特定点进行特殊乘法逆运算难以计算的特性。 Ps:RSA 算法等已被认为不够安全,一般推荐采用椭圆曲线系列算法。

混合加密机制

先用计算复杂度高的非对称加密协商一个临时的对称加密密钥(会话密钥,一般相对内容来说要短得多),然后对方在通过对称加密对传递的大量数据进行加解密处理。

典型应用:现在大家常用的HTTPS机制、HTTPS实际上是利用了Transport Layer Security/Secure Socket Layer(TLS/SSL)来实现可靠性传输。 建立安全连接步骤:

  1. 客户端浏览器发送信息到服务器,包括随机数 R1,支持的加密算法类型、协议版本、压缩算法等。注意该过程为明文。
  2. 服务端返回信息,包括随机数 R2、选定加密算法类型、协议版本,以及服务器证书。注意该过程为明文。
  3. 浏览器检查带有该网站公钥的证书。该证书需要由第三方 CA 来签发,浏览器和操作系统会预置权威 CA 的根证书。如果证书被篡改作假(中间人攻击),很容易通过 CA 的证书验证出来。
  4. 如果证书没问题,则用证书中公钥加密随机数 R3,发送给服务器。此时,只有客户端和服务器都拥有 R1、R2 和 R3 信息,基于 R1、R2 和 R3,生成对称的会话密钥(如 AES算法)。后续通信都通过对称加密进行保护。

加盐加密

加盐需要注意两点:短盐值、盐值重复 两大弊端:盐值重复或者硬编到软件中、可以通过破解软件、专门为这个软件生成彩虹表和查询表 盐值太短:就相当于降低密码复杂度、这使得破解字典体积更小、跑字典破解更快。

  • 使用CSPRNG生成一个长度足够的盐值 将盐值混入密码,并使用标准的加密哈希函数进行加密,如SHA256,再把哈希值和盐值一起存入数据库中对应此用户的那条记录
  • 校验密码的步骤 从数据库取出用户的密码哈希值和对应盐值,将盐值混入用户输入的密码,并且使用同样的哈希函数进行加密,比较上一步的结果和数据库储存的哈希值是否相同,如果相同那么密码正确,反之密码错误 加密部分代码:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class MD5Test { 
   
@Test   
public void test(){ 
   
        //原始 密码 
 String source = "123456";       
 //盐 
String salt = "helen";        
//散列次数 
 int hashIterations = 1024;
  //构造方法: 
 //第一个参数:散列算法 
 //第二个参数:明文,原始密码 
 //第三个参数:盐,通过使用随机数 
 //第四个参数:散列的次数,比如散列两次,相当 于md5(md5('')) 
//这个加密的方法名不是乱写的,具体要看api,shiro提供了相当丰富的加密 方式,只是你//写的名字必须要和其一致
 SimpleHash simpleHash = new SimpleHash("md5", source, salt, hashIterations); 
       String md5 =  simpleHash.toString();        
       System.out.println(md5);  
}
}

只听到从山间传来架构君的声音: 嗷嗷空城雀,身计何戚促。有谁来对上联或下联?

在Web程序中,永远在服务器端进行哈希加密

让密码更难破解:慢哈希函数 PBKDF2、BCRYPT、SCRYPT曾经是最常用的三种密码Hash算法。

  • PBKDF2因为计算过程需要内存少所以可被GPU/ASIC加速,
  • BCRYPT不支持内存占用调整且容易被FPGA加速,
  • SCRYPT不支持单独调整内存或计算时间占用且可能被ASIC加速并有被旁路攻击的可能。

今天文章到此就结束了,感谢您的阅读,祝您升职加薪,年年好运。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于密码存储这件事儿
在当今数字化时代,密码的安全性至关重要。不正确的密码存储方法可能导致用户数据泄露、账户被盗或系统遭受恶意攻击。因此,采用最佳实践和安全的技术方案来存储密码是至关重要的。
用户1107783
2024/03/18
2260
关于密码存储这件事儿
shiro教程3(加密)
  加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容
用户4919348
2019/04/02
8600
shiro教程3(加密)
网络协议(十一):单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书
冬天vs不冷
2025/01/21
1300
网络协议(十一):单向散列函数、对称加密、非对称加密、混合密码系统、数字签名、证书
密码学知识点思维导图_简略
欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/
yifei_
2022/11/14
7550
密码学知识点思维导图_简略
加密算法概述:分类与常见算法
加密算法可以根据不同的标准进行分类,比如根据密钥的使用方式、加密和解密过程是否可逆等。以下是一些主要的分类方式:
公众号:码到三十五
2024/05/24
9270
加密算法概述:分类与常见算法
干货 | 如果信息泄露不可避免,我们该如何保护用户密码?
作者简介 张辉,就职于携程技术中心信息安全部,负责安全产品的设计与研发。 作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密或者加密方式比较弱,导致黑客可以还原出原始的用户密码。目前已经曝光的信息泄露事件至少上百起,其中包括多家一线互联网公司,泄露总数据超过10亿条。 要完全防止信息泄露是非常困难的事情,除了防止黑客外,还要防止内部人员泄密。但如果采用合适的算法去加密用户密码,即使信息泄露出去,黑客也无法还原出原始的密码(或者还原
携程技术
2018/03/16
1K0
干货 | 如果信息泄露不可避免,我们该如何保护用户密码?
用户密码到底要怎么加密存储?
目前已经曝光的信息泄露事件至少上百起,其中包括多家一线互联网公司,泄露总数据超过10亿条。
Java技术栈
2020/02/21
8.9K0
常见的密码加密方式有哪些?2分钟带你快速了解!
哈喽,大家好呀!这里是码农后端。本篇将带你了解一些常见的密码加密方式。毋庸置疑,密码的安全性对于用户来说是非常重要的,如何保证密码的安全性使其不被破解也是一直以来的一个非常重要的话题。
reload
2024/04/18
7420
常见的密码加密方式有哪些?2分钟带你快速了解!
如何安全传输与存储用户密码?
我们开发网站或者APP的时候,首先要解决的问题,就是「如何安全传输和存储用户的密码」。一些大公司的用户数据库泄露事件也时有发生,带来非常大的负面影响。因此,如何安全传输存储用户密码,是每位程序员必备的基础。本文将跟大家一起学习,如何安全传输存储用户的密码。
macrozheng
2021/01/08
1.3K0
如何安全传输与存储用户密码?
用户密码加密存储十问十答,一文说透密码安全存储
不行。存储在数据库的数据面临很多威胁,有应用程序层面、数据库层面的、操作系统层面的、机房层面的、员工层面的,想做到百分百不被黑客窃取,非常困难。
程序员小猿
2021/01/20
1.4K0
用户密码加密存储十问十答,一文说透密码安全存储
密码及加密方式
保护密码的最好方法是使用加盐哈希; 哈希算法 哈希算法是一种单向函数,把任意数量的数据转换成固定长度的“指纹”,这个过程无法逆转。如果输入发生一点改变,由此产生的哈希值完全不同。 基于哈希加密账号系统中,用户注册和认证的大致流程如下: 用户创建自己的账号; 密码经过哈希加密后存储在数据库中。密码一旦写入磁盘,任何时候都不允许明文形式; 用户试图登录时,系统从数据库取出已经加密的密码,和经过哈希加密的用户输入的密码进行对比; 如果哈希值相同,用户将被授权访问。否则,告知输入登录信息无效; 只有加密哈希函数才可
春哥大魔王
2018/04/17
1.9K0
一篇文章搞定密码学基础
密码技术是网络安全的基础,也是核心。现在对隐私保护、敏感信息尤其重视,所以不论是系统开发还是App开发,只要有网络通信,很多信息都需要进行加密,以防止被截取篡改,虽然很多人每天都在用密码学的知识,但并不是人人都知道,谨以此篇科普一下~~~ PS:2016.7.10 补充 散列函数与消息摘要 基本概念 明文M:原始数据,待加密的数据 密文C:对明文进行某种伪装或变换后的输出 密钥K:加密或解密中所使用的专门工具 加密E:用某种方法将明文变成密文的过程 解密D:将密文恢复成明文的过程 密码系统 一个密码
YungFan
2018/05/03
1.6K0
一篇文章搞定密码学基础
03 | 密码学基础:如何让你的密码变得“不可见”?
上一讲,我们学习了黄金法则的三部分核心内容:认证、授权、审计。它们描述了用户在使用应用的各个环节,我们需要采取的安全策略。
小黑同学
2020/11/24
9350
03 | 密码学基础:如何让你的密码变得“不可见”?
应用密码学初探
关键字:密码学,密码算法,单向哈希函数,对称加密,非对称加密,数字签名,数字证书,Merkle树,同态加密 在计算机科学中,密码学常常用来解决某些特定的难题: 文件机密性,对于某些需要保密的文件的加密工作。 鉴别真伪,也叫认证,防止文件被伪造。 验证完整性,验证文件的完整性,传输中是否有破损。 信用问题,也即不可抵赖性,这也是区块链要解决的关键问题,对于所有人的信用问题,那些承诺算不算数。 密码学可以细分为密码协议,密码技术以及密码算法,本文不会详尽学习密码学的所有角落,而是专门针对区块链应用到的密码
文彬
2018/05/08
1.3K0
非对称加密与安全证书看这一篇就懂了
前几日做支付对接时,被对方文档中的加密方式搞晕乎了一会。意识到证书加密方面的理解不够深入,事后查阅参考资料补习一波。本文是根据期间的学习,以及长期以来的实践做出的总结。
用户1263954
2018/07/30
1.8K0
非对称加密与安全证书看这一篇就懂了
Android常用加密方式
加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。
全栈程序员站长
2022/08/29
1.5K0
Android常用加密方式
漫话:将密码明文保存在数据库是真的low!
挂断电话后,我赶紧登录12306改掉了我的密码,还好我各个网站的密码不一样,这样就能很好的避免被撞库了。
Java3y
2019/08/27
1.6K0
漫话:将密码明文保存在数据库是真的low!
密码学小白必知必会
本文是以介绍密码学基本概念为目的,面向密码学小白或者新人的文章。包含的内容主要是一些课本知识,个人理解,还有一些实例及代码。下面,将从密码学的基础,应用,及实例等几个方面对密码学进行简单的介绍。
zenlu
2024/02/20
5840
密码学小白必知必会
Python与常见加密方式
数据加密与解密通常是为了保证数据在传输过程中的安全性,自古以来就一直存在,古代主要应用在战争领域,战争中会有很多情报信息要传递,这些重要的信息都会经过加密,在发送到对应的人手上。
润森
2019/08/29
2K0
Python与常见加密方式
Python3 加密解密技术详解
引言 Python 3 的标准库中没多少用来解决加密的,不过却有用于处理哈希的库。 在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto 和 cryptography 上。 我们将学习如何使用这两个库,来加密和解密字符串 哈希 1.哈希简介 使用标准库中的 hashlib 模块可以用来处理安全哈希算法或者消息摘要算法。 这个模块包含了符合 FIPS(美国联邦信息处理标准)的安全哈希算法,例如 SHA1,SHA224,SHA256,SHA384,SHA512 以及 RSA 的
小小科
2018/05/04
3.4K0
Python3 加密解密技术详解
相关推荐
关于密码存储这件事儿
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文