加密技术
文章平均质量分 59
LC超人在良家
记录一下平时的工作
展开
-
Spring Security+JWT实现权限管理
SpringSecurity是spring全家桶中的一个安全管理框架,类似于shiro,但是比shiro功能更加的丰富。主要核心功能是 认证 和 授权 :认证:验证当前访问系统的是不是本系统的用户,并且要确定具体是哪个用户授权:经过认证后判断当前用户是否有权限进行某个操作一、快速入门1.1初探引入Spring Security的依赖 <!-- springsecurity--> <dependency> <groupId&g原创 2022-03-14 14:26:55 · 6146 阅读 · 2 评论 -
JWT(java web token)的基本使用
JWT(java web token)JWT包含三部分: Header 头部 Payload 负载 Signature 签名其结构看起来是这样的 Header.Payload.Signature。#JWT的组成##Header在header中通常包含了两部分:token类型和采用的加密算法。{ “alg”: “HS256”, “typ”: “JWT”}接下来对这部分内容使用 Base64Url 编码组成了JWT结构的第一部分。##Payload它包含了claim, Claim是一些实体(通常原创 2022-01-13 09:03:03 · 2013 阅读 · 0 评论 -
无状态单点登录方案--jwt+rsa
无状态单点登录方案–jwt+rsa思路:jwt(token格式)+RSA(非对称对token进行加密)+rsa(生成公、私钥;私钥加密,公钥解密)分布式认证流程分为两种:有状态登录:服务器需要存储token无状态登录:服务器不用存储token#无状态登录的流程:当客户端第一次请求服务时,服务端对用户进行信息认证(登录)认证通过,将用户信息进行加密形成token,返回给客户端,作为登录凭证以后每次请求,客户端都携带认证的token服务的对token进行解密,判断是否有效。流程图:整原创 2022-01-11 11:14:43 · 3316 阅读 · 2 评论 -
单点登录sso
在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统SSO核心意义就一句话:一处登录,处处登录;一处注销,处处注销.单点登录在现在的系统架构中广泛存在,他将多个子系统的认证体系打通,实现了一个入口多处使用,而在架构单点登录时,也会遇到一些小问题,在不同的应用环境中可以采用不同的单点登录实现方案来满足需求。我将以我所遇到的应用环境以及在其中所经历的各个阶段与大家分享,若有不足,希望各位不吝赐教。sso的演变历程:共享Session共享Session可谓是实现单点登录最直接、最简单的原创 2022-01-11 11:14:28 · 268 阅读 · 0 评论 -
最终版本的JWT的使用
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>io.jsonwebtoken&原创 2022-01-08 23:02:39 · 1269 阅读 · 0 评论 -
JwtTokenUtil
<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0</version> </dependency>import cn.hutool.core.date.DateUtil;import cn原创 2021-12-22 09:07:47 · 291 阅读 · 0 评论 -
加密技术的类型(加盐加密)
加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类:对称加密,如AES基本原理:将明文分成N个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。优势:算法公开、计算量小、加密速度快、加密效率高缺陷:双方都使用同样密钥,安全性得不到保证非对称加密,如RSA基本原理:同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任原创 2021-12-16 09:11:58 · 2501 阅读 · 0 评论 -
BASE64的工具类
import java.nio.ByteBuffer;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;/** * BASE64的工具类 * @author kevinxu * */public class BASE64Util{ public BASE64Util() { } /** * 按系统默认编码encode该字符串 * @param s原创 2021-12-13 09:03:02 · 303 阅读 · 0 评论 -
MD5Util
import java.security.MessageDigest; public class MD5Util { /** * 把字节数组转成16进位制数 * * @param bytes * @return */ public static String bytesToHex(byte[] bytes) { StringBuffer md5str = new StringBuffer(); //把数组每原创 2021-12-08 10:23:42 · 353 阅读 · 0 评论 -
RSAUtils
import javax.crypto.Cipher;import java.io.ByteArrayOutputStream;import java.security.*;import java.security.interfaces.RSAPrivateKey;import java.security.interfaces.RSAPublicKey;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spec.原创 2021-12-08 10:23:28 · 101 阅读 · 0 评论 -
RSA和AES的区别
由于,RSA加解密速度慢,不适合大量数据文件加密,而AES加密速度很快,所有,中合起来就是:(AES+RSA)使用AES对称密码体制 对传输数据加密,同时使用RSA不对称密码体制 来传送AES的密钥–AES传递数据,RSA传递AES的秘钥。1.RSA签名和验签的流程图特点:只需交换公钥;公/秘钥机制,公钥加密,私钥解密;(或者私钥加密,公钥解密);公钥负责加密,私钥负责解密;私钥负责签名,公钥负责验证。缺点:加解密速度慢,特别是解密2、AES框图:特点:加解密用同一秘钥优点:速度快,效率高;原创 2021-12-08 10:23:17 · 12060 阅读 · 0 评论 -
Sm3国家密码管理局公布的公钥算法(商用密码)
依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.5.7</version> </dependency>加密public byte[] encode(String message,byte[] publicKey)原创 2021-12-08 10:23:04 · 1324 阅读 · 0 评论 -
JWT(java web token)
JWT(java web token)JWT包含三部分: Header 头部 Payload 负载 Signature 签名其结构看起来是这样的 Header.Payload.Signature。#JWT的组成##Header在header中通常包含了两部分:token类型和采用的加密算法。{ “alg”: “HS256”, “typ”: “JWT”}接下来对这部分内容使用 Base64Url 编码组成了JWT结构的第一部分。##Payload它包含了claim, Claim是一些实体(通常原创 2021-12-08 10:22:51 · 755 阅读 · 0 评论