一、前言
核心隱私數(shù)據(jù)無論對于企業(yè)還是用戶來說尤其重要,因此要想辦法杜絕各種隱私數(shù)據(jù)的泄漏。下面陳某帶大家從以下三個(gè)方面講解一下隱私數(shù)據(jù)如何脫敏,也是日常開發(fā)中需要注意的:
- 配置文件數(shù)據(jù)脫敏
- 接口返回?cái)?shù)據(jù)脫敏
- 日志文件數(shù)據(jù)脫敏
文章目錄如下:
二、配置文件如何脫敏?
經(jīng)常會(huì)遇到這樣一種情況:項(xiàng)目的配置文件中總有一些敏感信息,比如數(shù)據(jù)源的url、用戶名、密碼....這些信息一旦被暴露那么整個(gè)數(shù)據(jù)庫都將會(huì)被泄漏,那么如何將這些配置隱藏呢?以前都是手動(dòng)將加密之后的配置寫入到配置文件中,提取的時(shí)候再手動(dòng)解密,當(dāng)然這是一種思路,也能解決問題,但是每次都要手動(dòng)加密、解密不覺得麻煩嗎?
今天介紹一種方案,讓你在無感知的情況下實(shí)現(xiàn)配置文件的加密、解密。利用一款開源插件:
jasypt-spring-boot
。項(xiàng)目地址如下:
https://github.com/ulisesbocchio/jasypt-spring-boot
使用方法很簡單,整合Spring Boot 只需要添加一個(gè)
starter
。
1. 添加依賴
<dependency>
????????<groupId>com.github.ulisesbocchiogroupId>
????????<artifactId>jasypt-spring-boot-starterartifactId>
????????<version>3.0.3version>
dependency>??
2. 配置秘鑰
在配置文件中添加一個(gè)加密的秘鑰(任意),如下:
jasypt:
??encryptor:
????password:?Y6M9fAJQdU7jNp5MW
當(dāng)然將秘鑰直接放在配置文件中也是不安全的,我們可以在項(xiàng)目啟動(dòng)的時(shí)候配置秘鑰,命令如下:
java?-jar?xxx.jar??-Djasypt.encryptor.password=Y6M9fAJQdU7jNp5MW
3. 生成加密后的數(shù)據(jù)
這一步驟是將配置明文進(jìn)行加密,代碼如下:
@SpringBootTest
@RunWith(SpringRunner.class)
public?class?SpringbootJasyptApplicationTests?{
????/**
?????*?注入加密方法
?????*/
????@Autowired
????private?StringEncryptor?encryptor;
????/**
?????*?手動(dòng)生成密文,此處演示了url,user,password
?????*/
????@Test
????public?void?encrypt()?{
????????String?url?=?encryptor.encrypt("jdbc\\:mysql\\://127.0.0.1\\:3306/test?useUnicode\\=true