大家可有简单的加解密算法推荐?

2021-08-11 12:20:33 +08:00
 zealinux

为了数据安全,现在客户要求在配置中心里的敏感数据也要加密,

比如一些平台的 AK/SK,微信的 ApiKey 等。

那么配置中心不能直接存明文,只存加密后的字符串。 然后 Java 应用程序里解密后再使用。

大家可有推荐的简单的加解密方法推荐?

3119 次点击
所在节点    程序员
19 条回复
huangmingyou
2021-08-11 12:22:53 +08:00
vault
Building
2021-08-11 12:23:41 +08:00
最简单的: 映射。
opentrade
2021-08-11 12:30:03 +08:00
RichardYyf
2021-08-11 12:33:17 +08:00
我们用的是 jasypt,集成在我们的 apollo 组件里面,apollo 中心里面是密文,密文会包装成固定格式,更新配置的时候根据正则判断是否是加密字符串再去解密
GM
2021-08-11 13:08:07 +08:00
rc4,加解密一个函数二十行代码搞定,任何流行语言都有实现。
jorneyr
2021-08-11 13:19:15 +08:00
SpringBoot 或者 SpringMVC 的话,Jasypt 比较方便,可参考 http://qtdebug.com/spring-boot-jasypt
CrazyRundong
2021-08-11 15:35:27 +08:00
加密敏感数据挺 tricky 的,需要同时保证数据的秘密性和完整性,即 authenticated encryption (AE)

正确地实现 AE 非常难,楼主可以搜下 Java 下有没有可信赖的现有实现,毕竟密码学的基本原则之一就是不要自己造轮子。我自己之前的玩具项目用的是 Python cryptography 库的 Fernet 实现
GeruzoniAnsasu
2021-08-11 15:38:02 +08:00
不要造轮子。
现成的流密码选一个,块密码选一个,非对称选一个,然后直接用现成的密码学库。


基本只有一样事情要思:怎么藏密钥
skinny
2021-08-11 15:40:17 +08:00
chacha20poly1305 呗,aes256-gcm 也行
calming
2021-08-11 15:43:17 +08:00
直接 AES 一把梭
qwerthhusn
2021-08-11 15:43:54 +08:00
直接标准的 AES 就行了啊
自己封装个 AES 加解密的方法就行了啊。
RRRoger
2021-08-11 15:44:15 +08:00
凯撒加密
copymaster
2021-08-11 15:46:39 +08:00
@GeruzoniAnsasu 太对了,密码被破译根本不是我们应该考虑的,我们只需要做好储存密钥,交换密钥这两件事做好那么就算是'绝对安全'了
sutra
2021-08-11 15:53:23 +08:00
zhangxh1023
2021-08-12 09:40:06 +08:00
那么问题来了,怎么存储这个解密的密钥,直接写死在程序里面吗
hhjswf
2021-08-12 09:50:28 +08:00
加密到底是防谁?如果配置中心都被外人捅烂了...,那这也太拉垮了...防自己人,显然也不太能防的住,相当于掩耳盗铃
Rever1e
2021-08-12 13:09:23 +08:00
用 aes 加密内容
Vigenere(sha256( 你所想的密码),aes 密钥)
刚好可以一位对一位的偏移 aes 密钥
a1274598858
2021-08-12 14:47:09 +08:00
SM4
zgk
2021-08-12 18:52:32 +08:00
如果只是加密一段简短的 key 的话,可以直接用 xor 运算,只要密钥比原文长就可以,密钥可以随机生成一段。

加密:密文 = 原文 xor 密钥
解密:原文 = 密文 xor 密钥

原理是 Vernam 密码,参考:
https://0xffff.one/d/1043

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX