基础算法

简介: 加密算法分为对称加密(如AES、SM4)、非对称加密(如RSA、SM2)、哈希摘要(如SHA-2、SM3)、电子签名及密码存储技术。对称加密加解密速度快,密钥相同需严守;非对称加密使用公私钥,安全性高但较慢;哈希摘要是数据特征码,用于完整性校验,具备唯一性。

加密算法:
分类如下
1.对称加密
2.非对称加密
3.哈希摘要
4.电子签名
5.密码存储
其中
对称加密常见的有:DES、AES 等,国家标准有 SM4
非对称加密常见的有:RSA,ECDSA等,国家标准有SM2
哈希摘要有:MD5、SHA-2、SHA-3等,国家标准有SM3
电子签名有:通常会结合 RSA、ECDSA和哈希摘要完成签名,或者是HMAC
密码存储:直接使用哈希摘要作为密码存储、加盐存储、BCrypt
1.2【追问】解释对称加密、非对称加密、哈希摘要
对称加密
加密和解密的密钥使用同一个
因为密钥只有一个,所以密钥需要妥善保管
加解密速度快
。非对称加密
密钥分成公钥、私钥,其中公钥用来加密、私钥用来解密
只需将私钥妥善保管,公钥可以对外公开
如果是双向通信保证传输数据安全,需要双方各产生一对密钥
A 把 A公钥 给 B,B 把 B公钥 给 A,他们各自持有自己的私钥和对方的公钥
A 要发消息给 B,用 B公钥 加密数据后传输,B 收到后用 B私钥 解密数据
·类似的 B 要发消息给 A,用 A公钥 加密数据后传输,A 收到后用 A私钥 解密数据相对对称加密、加解密速度慢哈希摘要,摘要就是将原始数据的特征提取出来,它能够代表原始数据,可以用作数据的完整性校验
举个例子,张三对应着完整数据
描述张三时,会用它的特征来描述:他名叫张三、男性、30多岁、秃顶、从事java 开发、年薪百万,这些特征就对应着哈希摘要,以后拿到这段描述,就知道是在说张三这个人
为什么说摘要能区分不同数据呢,看这段描述:还是名叫张三、男性、30多岁、秃顶、从事java 开发月薪八千,有一个特征不符吧,这时可以断定,此张三非彼张三

相关文章
|
1天前
|
缓存 负载均衡 安全
第十章 常用组件1、nginx相关
正向代理是客户端通过代理访问外部服务器,隐藏客户端身份,用于访问受限资源或保护隐私;反向代理则是服务器前的代理,接收客户端请求并转发至内部服务器,隐藏真实服务器,实现负载均衡、安全防护与缓存加速,提升系统性能与安全性。
|
1天前
|
安全 Java 数据库连接
第五章 spring框架
Spring的IOC(控制反转)将对象创建交给容器管理,避免手动new;DI(依赖注入)则让容器自动注入所需对象。通过@Controller、@Service等注解声明Bean,使用@Autowired或@Resource实现注入。默认单例Bean无并发控制,若无状态则线程安全,否则需自行保证。
|
1天前
|
SQL 监控 关系型数据库
4、SQL性能分析及优化
通过SkyWalking链路追踪可定位慢接口及慢SQL,或开启MySQL慢查询日志(如设置超1秒记录)来识别执行慢的SQL。结合explain分析执行计划,关注key、type、extra等关键指标,判断索引命中与性能瓶颈,避免全表扫描,优化SQL性能。(238字)
|
1天前
|
程序员 API
7、Lambda表达式
Lambda表达式又称匿名函数,语法为(参数)->表达式,本质是函数对象,用于行为参数化,如Stream API、QueryWrapper等场景。相比匿名内部类,Lambda更简洁,需配合函数式接口使用,且在运行时动态生成类,其this指向也与匿名内部类不同。
|
1天前
|
NoSQL Java 数据库连接
第七章 SpringBoot框架
SpringBoot是简化Spring开发的框架,核心功能包括:starter起步依赖简化配置、自动配置实现Bean自动化管理、内嵌Web服务器支持jar包直接运行。常用starter如web、aop、redis等,分为官方与第三方两类,极大提升了开发效率。(238字)
|
1天前
|
Java Spring 容器
Spring Boot配置的优先级?
SpringBoot项目支持多种配置方式,主要包括配置文件(application.properties、.yml、.yaml)和外部配置(如系统属性、命令行参数)。优先级由高到低为:命令行参数 > 系统属性 > .properties > .yml > .yaml。自动配置核心是@SpringBootApplication中的@EnableAutoConfiguration,通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类,并结合@Conditional条件注解按需注入Bean。
|
1天前
|
Java Spring 容器
Spring Bean的作用域如何设置,常见的取值有哪些?
Spring Bean作用域可通过@Scope注解设置,常见有singleton(默认,单例)、prototype(每次创建新实例)、request(每请求一个实例)、session(每会话一个实例)。singleton在容器启动时初始化,可加@Lazy延迟;prototype则每次使用时创建。多数场景使用默认单例模式。
|
1天前
|
JSON 前端开发 Java
SpringMVC的拦截器用过没有?
拦截器常用于登录校验、参数处理、数据脱敏等,通过实现`HandlerInterceptor`接口,并在配置类中注册,限定拦截路径。与过滤器相比,拦截器基于Spring容器,仅拦截Controller请求,而过滤器作用于所有Web资源。异常处理可使用`@RestControllerAdvice`和`@ExceptionHandler`实现全局捕获。常用注解包括`@RequestMapping`、`@RequestBody`、`@RequestParam`、`@PathVariable`、`@ResponseBody`等,简化开发。
|
1天前
|
Java 数据库 数据安全/隐私保护
什么是AOP?
AOP(面向切面编程)是Spring框架的重要特性,用于将日志、事务、权限等公共逻辑抽离,实现模块复用、降低耦合。项目中常用AOP记录操作日志和权限控制,通过自定义@Log注解结合环绕通知,捕获方法执行信息并存入数据库,便于追踪核心业务操作。其底层基于动态代理实现。
|
1天前
|
缓存 Java Spring
聊-聊Spring中bean的循环依赖问题?
Spring通过三级缓存解决循环依赖:一级缓存存放完整单例Bean,二级缓存存放早期半成品Bean,三级缓存存放对象工厂用于创建代理等对象。A依赖B、B依赖A时,先创建A并放入三级缓存,实例化B时通过三级缓存获取A的工厂生成早期引用并放入二级缓存,B完成初始化后注入A,再将B注入A,最终双方都成功创建并放入一级缓存,流程结束清除二级缓存临时对象。