jwt的token加密方式

文章讲述了在SpringSecurity中,如何使用JWT进行令牌加密,包括非对称加密(使用`JwtAccessTokenConverter`和密钥对)以及对称加密(使用`signingKey`)。同时介绍了生成和管理密钥的方法,如JKS文件的使用。
摘要由CSDN通过智能技术生成

有一天老板问我,我们系统的token是什么加密方式。

不知道,我只知道是jwt。尴尬,赶紧去翻下代码

找到我们的配置类

public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter 

继承自AuthorizationServerConfigurerAdapter

    /**
     * 加密jwt
     * @return
     */
    @Bean
    public JwtAccessTokenConverter jwtAccessTokenConverter(){
        JwtAccessTokenConverter jwtAccessTokenConverter = new JwtAccessTokenConverter();
        jwtAccessTokenConverter.setKeyPair(keyPair());
        return jwtAccessTokenConverter;
    }

    /**
     * 读取resource下的jwt.jks文件
     * @return
     */
    @Bean
    public KeyPair keyPair(){
        KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("test.jks"),"123456".toCharArray());
        return keyStoreKeyFactory.getKeyPair("test","123456".toCharArray());
    }

上述代码中,JwtAccessTokenConverter 使用了密钥库和密钥对,这是非对称加密的特征。

到这里我的答案找到,是非对称加密,那什么是对称加密呢,

    @Bean
    public JwtAccessTokenConverter accessTokenConverter() {
        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        converter.setSigningKey("your-signing-key"); // 使用对称密钥
        return converter;
    }

好,我建议使用非对称加密。

最后说下这个jks文件,

查看文件

keytool -list -v -keystore your-keystore.jks

创建文件

keytool -genkeypair -alias new-alias -keyalg RSA -keysize 2048 -keystore new-keystore.jks
@Bean
public JwtAccessTokenConverter accessTokenConverter() {
    JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
    KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("new-keystore.jks"), "new-keystore-password".toCharArray());
    converter.setKeyPair(keyStoreKeyFactory.getKeyPair("new-alias"));
    return converter;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值