この記事で紹介する内容は、Jasypt セキュリティ フレームワークと構成ファイルのコンテンツ暗号化を統合する SpringBoot に関するものです (コード例)。必要な方は参考にしていただければ幸いです。
SpringBoot プロジェクトの yml またはプロパティ設定ファイルはすべてクリア テキストであり、比較的安全性が低くなります。構成ファイルには、データベース接続のユーザー名とパスワード、サードパーティのキー、その他の情報が含まれていることは誰もが知っています。したがって、注意して暗号化を使用しましょう。
ここでは Jasypt セキュリティ フレームワークが使用されています。
<!-- Jasypt加密 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
コード サンプル: JasyptUtils.java
# 配置文件加密key jasypt: encryptor: password: panther
上記のツールキットには 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 サイトの他の関連記事を参照してください。