https和加密方法和hash加盐

2024-03-20 07:32
文章标签 方法 加密 https hash 加盐

本文主要是介绍https和加密方法和hash加盐,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考:https://www.sohu.com/a/294450321_100134138

https相比http:就是防止 客户端和服务端之间交互的信息,中途被人窃取,通过非对称加密,来保障客户端发出去的信息,只有服务端用自己的私钥解开,来指导发过来的是什么信息。

这里涉及到证书的问题,就是客户端需要拿到证书,基于这个证书来进行加密,这证书是通过一个公开的授信渠道下载下来的,做和域名作为key来关联的

 


1. 确保内容不被窃听(无法被揭密):  先用对方公钥加密

A->B发送内容,确保内容不被 黑客 拦截并解密内容,  A要用用B的非对称公钥 来对对称加密的密钥进行加密,  B用自己的非对称私钥来解开  对称密钥,  然后再用对称密钥  对加密的内容进行解密
发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”,这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信。

非对称加密 的效率很慢,所以不能对内容本身直接非对称加密,而是对对称加密的密钥进行加密

不适合日志上报,日志上报过程  是对发送方A不信任的   , 所以任何一个非法发送者  可以使用相同逻辑给B发日志


非对称加密:rsa
对称加密:res
签名:sha256

2. 解决报文可能遭篡改问题——数字签名,(加签和验签)   先用自己的私钥加密

A-》B
A先生成内容的摘要, 然后用自己的私钥 对摘要进行加密 
B收到之后,先对内容用约定好的相同方式进行生成摘要,  然后用A的公钥来解密  加密的摘要,  对自己生成的进行对比

如果校验成功,能得到结论是   一定是A发送的,而且没有被篡改


对于日志埋点上报,由于对摘要加密过程都是可以被 人知道的,所以谁都可以 执行这个过程,所以也不能用

3. 解决发布公钥的合法性问题——认证
    办法就是有一个所有人都公开的认证机构,   提供一个权威的公钥,加用同一个公钥就能解开,说明是权威机构颁发的,这个叫证书

    服务器A,跟机构 申请一个证书, 机构给了A,证书里包含了A自己生成的公钥,机构对A的公钥进行了认证
    并以证书的形式,也就是只要用机构的公钥就能看到里面的  A的公钥。

    这样客户端和服务器A进行交互时,A给客户端发一个证书,客户端用机构的公钥一解密,成功了,就得到了服务器A的 公钥了,并可以信任这个公钥了。

    以后客户端和服务器A的交互都使用这个公钥。


    这就是https的第一步

    后面的通信都是使用  1里面说的办法,来确保内容在传输过程中  不被窃取

 

 

哈希加盐:参考https://www.jianshu.com/p/cc2468b82e90

由于字典法 ,时比较容易把原文反查出来的,所以需要使用一个 盐 + 原文  通过一定规则一起加密,这个混的方法要隐蔽一点

这样即使反查出来,也不能轻易知道原文

盐一般生成规则需要不一样,也就是每次加密时,盐都不一样,盐一般是根据某种信息生成的随机数

这样,要想知道从密文知道原文,需要知道盐是什么

一般在存密码的时候,需要把  生成盐的输入信息+盐+密文放在数据库表中,   这样才能够进行校验。

 

这篇关于https和加密方法和hash加盐的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/828724

相关文章

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL查询JSON数组字段包含特定字符串的方法

《MySQL查询JSON数组字段包含特定字符串的方法》在MySQL数据库中,当某个字段存储的是JSON数组,需要查询数组中包含特定字符串的记录时传统的LIKE语句无法直接使用,下面小编就为大家介绍两种... 目录问题背景解决方案对比1. 精确匹配方案(推荐)2. 模糊匹配方案参数化查询示例使用场景建议性能优

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四