ホームページ  >  記事  >  Java  >  SpringBoot は Jasypt セキュリティ フレームワークと構成ファイルのコンテンツ暗号化を統合します (コード例)

SpringBoot は Jasypt セキュリティ フレームワークと構成ファイルのコンテンツ暗号化を統合します (コード例)

不言
不言転載
2019-02-19 15:56:536120ブラウズ

この記事で紹介する内容は、Jasypt セキュリティ フレームワークと構成ファイルのコンテンツ暗号化を統合する SpringBoot に関するものです (コード例)。必要な方は参考にしていただければ幸いです。

SpringBoot プロジェクトの yml またはプロパティ設定ファイルはすべてクリア テキストであり、比較的安全性が低くなります。構成ファイルには、データベース接続のユーザー名とパスワード、サードパーティのキー、その他の情報が含まれていることは誰もが知っています。したがって、注意して暗号化を使用しましょう。

ここでは Jasypt セキュリティ フレームワークが使用されています。

1: jar パッケージを pom.key に導入します

<!-- Jasypt加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.0.0</version>
    </dependency>

3: ツールキットの 1 つを作成します

コード サンプル: JasyptUtils.java

# 配置文件加密key
jasypt:
  encryptor:
    password: panther

4: 使用方法

上記のツールキットには main メソッドがあり、設定したキーを入力してから、暗号化する必要がある値を入力し、直接実行します。

構成ファイルのデータベース接続と同様です

package com.zhuang.common.utils;

import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

/**
 * @Created with Intellij IDEA
 * @Author : payne
 * @Date : 2018/5/18 - 10:37
 * @Copyright (C), 2018-2018
 * @Descripition : Jasypt安全框架加密类工具包
 */
public class JasyptUtils {

    /**
     * Jasypt生成加密结果
     *
     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
     * @param value    待加密值
     * @return
     */
    public static String encryptPwd(String password, String value) {
        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
        encryptOr.setConfig(cryptOr(password));
        String result = encryptOr.encrypt(value);
        return result;
    }

    /**
     * 解密
     *
     * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
     * @param value    待解密密文
     * @return
     */
    public static String decyptPwd(String password, String value) {
        PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
        encryptOr.setConfig(cryptOr(password));
        String result = encryptOr.decrypt(value);
        return result;
    }

    public static SimpleStringPBEConfig cryptOr(String password) {
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword(password);
        config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setStringOutputType("base64");
        return config;
    }

    public static void main(String[] args) {
        // 加密
        System.out.println(encryptPwd("panther", "root"));
        // 解密
        System.out.println(decyptPwd("panther", "GfP4qfnrJeqMvzN1nOemIQ=="));
    }

}

以上がSpringBoot は Jasypt セキュリティ フレームワークと構成ファイルのコンテンツ暗号化を統合します (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。