iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Springboot如何整合JwtHelper实现非对称加密
  • 953
分享到

Springboot如何整合JwtHelper实现非对称加密

2023-06-29 18:06:07 953人浏览 八月长安
摘要

这篇文章主要介绍了SpringBoot如何整合JwtHelper实现非对称加密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、生成公私钥对提供两种方法,一种基于命令行中的K

这篇文章主要介绍了SpringBoot如何整合JwtHelper实现非对称加密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、生成公私钥对

提供两种方法,一种基于命令行中的Keytool工具生成,一种是基于springSecurity中的KeyPairGenerator类生成,现实现第二种方式:

//    加密算法    private static final String KEY_ALGoRITHM = "RSA";//    公钥key    private static final String PUB_KEY="publicKey";//    私钥key    private static final String PRI_KEY="privateKey";     public static Map<String,String> generateKey() throws NoSuchAlgorithmException {        Map<String,String> keyMap=new HashMap<>();        KeyPairGenerator instance = KeyPairGenerator.getInstance(KEY_ALGORITHM);        KeyPair keyPair = instance.generateKeyPair();        PrivateKey privateKey = keyPair.getPrivate();        PublicKey publicKey = keyPair.getPublic();        //Base64 编码        byte[] privateKeyEncoded = privateKey.getEncoded();        String privateKeyStr = Base64.encodeBase64String(privateKeyEncoded);        byte[] publicKeyEncoded = publicKey.getEncoded();        String publicKeyStr=Base64.encodeBase64String(publicKeyEncoded);        keyMap.put(PUB_KEY,publicKeyStr);        keyMap.put(PRI_KEY,privateKeyStr);        return keyMap;    }

二、利用私钥生产token

 //    加密算法    private static final String KEY_ALGORITHM = "RSA";    //    公钥key    private static final String PUB_KEY="publicKey";    //    私钥key    private static final String PRI_KEY="privateKey";//    GenerateKey Key=new GenerateKey();//    利用私钥生产token    public static Map<String,String> generateToken(UserDetails userDetails) throws NoSuchAlgorithmException, InvalidKeySpecException {        GenerateKey Key=new GenerateKey();        RSAPrivateKey privateKey = null;        RSAPublicKey publicKey=null;        String token=null;        Map<String, String> map=new HashMap<>();        Map<String, String> keyMap = Key.generateKey();        privateKey=getPrivateKey(keyMap.get(PRI_KEY));        Map<String,String> tokenMap=new HashMap<>();        tokenMap.put("userName",userDetails.getUsername());//        使用私钥加密        token = JwtHelper.encode(JSON.tojsONString(tokenMap), new RsaSigner(privateKey)).getEncoded();          map.put("token",token);        map.put("publicKey",keyMap.get(PUB_KEY));        return map;    }

三、利用公钥解密token

public static String parseToken(String token,String publicKey) throws NoSuchAlgorithmException, InvalidKeySpecException {        Jwt jwt=null;        RSAPublicKey rsaPublicKey;        rsaPublicKey=getPublicKey(publicKey);        jwt=JwtHelper.decodeAndVerify(token, new RsaVerifier(rsaPublicKey) );        String claims= jwt.getClaims();        return claims;    }

四、将String类型的公钥转换成RSAPublicKey对象

        public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorithmException, InvalidKeySpecException {        // 通过X509编码的Key指令获得公钥对象        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);        X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(Base64.decodeBase64(publicKey));        RSAPublicKey key = (RSAPublicKey) keyFactory.generatePublic(x509KeySpec);        return key;    }

五、将String类型的私钥转换成RSAPrivateKey对象

        public static RSAPrivateKey getPrivateKey(String privateKey)            throws NoSuchAlgorithmException, InvalidKeySpecException {        // 通过PKCS#8编码的Key指令获得私钥对象        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);        PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKey));        RSAPrivateKey key = (RSAPrivateKey) keyFactory.generatePrivate(pkcs8KeySpec);        return key;    }

感谢你能够认真阅读完这篇文章,希望小编分享的“Springboot如何整合JwtHelper实现非对称加密”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Springboot如何整合JwtHelper实现非对称加密

本文链接: https://www.lsjlt.com/news/326081.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot整合JwtHelper实现非对称加密
    目录一、生成公私钥对二、利用私钥生产token三、利用公钥解密token四、将String类型的公钥转换成RSAPublicKey对象五、将String类型的私钥转换成RSAPriv...
    99+
    2024-04-02
  • Springboot如何整合JwtHelper实现非对称加密
    这篇文章主要介绍了Springboot如何整合JwtHelper实现非对称加密,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、生成公私钥对提供两种方法,一种基于命令行中的K...
    99+
    2023-06-29
  • Springboot基于BCrypt非对称加密字符串的实现
    目录1 : BCrypt简介2 : 集成BCrypt加密及验证2.1 : 引入POM2.2 : 工具类2.3 : 验证1 : BCrypt简介 在用户模块中,需要对于用户的密码进行保...
    99+
    2023-05-14
    Springboot BCrypt非对称加密字符串 Springboot 非对称加密字符串
  • Node.js中怎么实现非对称加密
    Node.js中怎么实现非对称加密,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。加密、解密方法在Node.js中,负责安全的模块是cryp...
    99+
    2024-04-02
  • c# 实现RSA非对称加密算法
    目录  公钥与私钥  C#实现  公钥与私钥   公钥与私钥是成对的,一般的,我们认为的是公钥加密、私钥解密、私钥签名、公钥验证,有人说成私钥加密,公钥解密时不对的。   公钥与私钥...
    99+
    2024-04-02
  • Java 实现RSA非对称加密算法
    目录  公钥与私钥  Java实现  公钥与私钥   公钥与私钥是成对的,一般的,我们认为的是公钥加密、私钥解密、私钥签名、公钥验证,有人说成私钥加密,公钥解密时不对的。   公钥与...
    99+
    2024-04-02
  • PHP中如何进行对称和非对称加密?
    在网络安全领域,加密技术是一种非常重要的技术手段,其可以将数据进行加密和解密,从而确保数据的安全性。PHP作为一种流行的服务器端编程语言,也提供了对称和非对称加密的支持,以满足不同应用场景的需求。对称加密对称加密是指使用相同的密钥进行加密与...
    99+
    2023-05-21
    加密算法 对称加密 非对称加密
  • Springboot基于BCrypt非对称加密字符串怎么实现
    这篇文章主要讲解了“Springboot基于BCrypt非对称加密字符串怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot基于BCrypt非对称加密字符串怎么实现”吧...
    99+
    2023-07-05
  • 如何使用Java实现RSA非对称加密算法
    这篇文章主要介绍如何使用Java实现RSA非对称加密算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、非对称加密非对称加密算法是一种密钥的保密方法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公...
    99+
    2023-06-15
  • SpringBoot整合BCrypt实现密码加密
    本文实例为大家分享了SpringBoot整合BCrypt实现密码加密的具体代码,供大家参考,具体内容如下 一. 首先在pom依赖中加入依赖: <!-- security依赖...
    99+
    2024-04-02
  • 如何实现Linux下OpenSSL的DSA与RSA非对称加密
    这篇文章主要讲解了“如何实现Linux下OpenSSL的DSA与RSA非对称加密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现Linux下OpenSSL的DSA与RSA非对称加密”吧...
    99+
    2023-06-12
  • python对称和非对称密码怎么实现
    这篇文章主要讲解了“python对称和非对称密码怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python对称和非对称密码怎么实现”吧!对称密码术在此类型中,加密和解密进程使用相同的...
    99+
    2023-06-30
  • Golang如何实现AES对称加密
    小编给大家分享一下Golang如何实现AES对称加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!AES加密AES对称加密简介AES是一个对称密码,旨在取代DES...
    99+
    2023-06-15
  • 非对称性加密如何保护数据真实性
    使用非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥和私有密钥,公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密,使用非对称...
    99+
    2024-04-02
  • 教你用Java实现RSA非对称加密算法
    目录一、非对称加密二、RSA算法三、RSA算法Java语言实现一、非对称加密 非对称加密算法是一种密钥的保密方法。 非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥...
    99+
    2024-04-02
  • 如何在Java项目中实现一个非对称加密算法
    如何在Java项目中实现一个非对称加密算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:对称加密算法在加密和解密时使用的是同一个秘钥;而非对称加密算法...
    99+
    2023-05-31
    java 非对称加密算法 ava
  • Golang如何实现AES对称加密算法
    本篇内容主要讲解“Golang如何实现AES对称加密算法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Golang如何实现AES对称加密算法”吧!前置知识在正式学习加密解密之前,首先看看如何生成...
    99+
    2023-07-05
  • 浅析非对称加密在接口参数中的实现
    目录背景非对称加密后端接口处理前端页面处理非对称加密 + 对称加密后端接口处理前端页面处理一些考虑背景 接口层做数据加密应该算是老生常谈的一件事了,业界用的比较多的,不外乎是对称加密...
    99+
    2023-02-17
    非对称加密实现 非对称加密在接口参数中实现 非对称加密 接口参数
  • java 中的非对称加密怎么利用DH方式实现
    本篇文章为大家展示了java 中的非对称加密怎么利用DH方式实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现代码:package com.sahadev;  im...
    99+
    2023-05-31
    java dh 非对称加密
  • 使用springboot如何实现对 beatlsql进行整合
    这篇文章给大家介绍使用springboot如何实现对 beatlsql进行整合,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。BeetSql是一个全功能DAO工具, 同时具有hibernate 优点 & Myba...
    99+
    2023-05-31
    springboot beatlsql bea
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作