为了数据安全,现在客户要求在配置中心里的敏感数据也要加密,
比如一些平台的 AK/SK,微信的 ApiKey 等。
那么配置中心不能直接存明文,只存加密后的字符串。 然后 Java 应用程序里解密后再使用。
大家可有推荐的简单的加解密方法推荐?
为了数据安全,现在客户要求在配置中心里的敏感数据也要加密,
比如一些平台的 AK/SK,微信的 ApiKey 等。
那么配置中心不能直接存明文,只存加密后的字符串。 然后 Java 应用程序里解密后再使用。
大家可有推荐的简单的加解密方法推荐?
|
huangmingyouAug 11, 2021
1
vault
|
|
BuildingAug 11, 2021 via iPhone
2
最简单的: 映射。
|
|
opentradeAug 11, 2021
3
NaCI,也有人向我推荐[SecureChannel]( https://github.com/rustdesk/rustdesk/issues/156),我还没用过。
|
|
RichardYyfAug 11, 2021
4
我们用的是 jasypt,集成在我们的 apollo 组件里面,apollo 中心里面是密文,密文会包装成固定格式,更新配置的时候根据正则判断是否是加密字符串再去解密
|
|
GMAug 11, 2021
5
rc4,加解密一个函数二十行代码搞定,任何流行语言都有实现。
|
|
jorneyrAug 11, 2021
6
SpringBoot 或者 SpringMVC 的话,Jasypt 比较方便,可参考 http://qtdebug.com/spring-boot-jasypt
|
|
h5h6l3otQK8vLTYvAug 11, 2021 via iPhone
7
加密敏感数据挺 tricky 的,需要同时保证数据的秘密性和完整性,即 authenticated encryption (AE)
正确地实现 AE 非常难,楼主可以搜下 Java 下有没有可信赖的现有实现,毕竟密码学的基本原则之一就是不要自己造轮子。我自己之前的玩具项目用的是 Python cryptography 库的 Fernet 实现 |
|
GeruzoniAnsasuAug 11, 2021
8
不要造轮子。
现成的流密码选一个,块密码选一个,非对称选一个,然后直接用现成的密码学库。 基本只有一样事情要思:怎么藏密钥 |
|
skinnyAug 11, 2021
9
chacha20poly1305 呗,aes256-gcm 也行
|
|
calmingAug 11, 2021
10
直接 AES 一把梭
|
|
qwerthhusnAug 11, 2021
11
直接标准的 AES 就行了啊
自己封装个 AES 加解密的方法就行了啊。 |
|
RRRogerAug 11, 2021
12
凯撒加密
|
|
copymasterAug 11, 2021
13
@GeruzoniAnsasu 太对了,密码被破译根本不是我们应该考虑的,我们只需要做好储存密钥,交换密钥这两件事做好那么就算是'绝对安全'了
|
|
sutraAug 11, 2021
14
|
|
zhangxh1023Aug 12, 2021
15
那么问题来了,怎么存储这个解密的密钥,直接写死在程序里面吗
|
|
hhjswfAug 12, 2021
16
加密到底是防谁?如果配置中心都被外人捅烂了...,那这也太拉垮了...防自己人,显然也不太能防的住,相当于掩耳盗铃
|
|
Rever1eAug 12, 2021
17
用 aes 加密内容
Vigenere(sha256( 你所想的密码),aes 密钥) 刚好可以一位对一位的偏移 aes 密钥 |
|
a1274598858Aug 12, 2021
18
SM4
|
|
zgkAug 12, 2021 via iPhone
19
如果只是加密一段简短的 key 的话,可以直接用 xor 运算,只要密钥比原文长就可以,密钥可以随机生成一段。
加密:密文 = 原文 xor 密钥 解密:原文 = 密文 xor 密钥 原理是 Vernam 密码,参考: https://0xffff.one/d/1043 |