tink 是google 多年加密实践的框架,提供了安全的加密处理方法,可以简化不少我们的加密处理
参考使用
public static void main(String[] args) throws GeneralSecurityException, IOException {
AeadConfig.register();
// 1. Generate the key material.
KeysetHandle keysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES256_GCM);
// 2. Get the primitive.
Aead aead = AeadFactory.getPrimitive(keysetHandle);
byte[] plaintext = " dddddddddddddd".getBytes();
byte[] additionalData = "dalongdemo".getBytes();
byte[] ciphertext = aead.encrypt(plaintext, additionalData);
System.out.println(new String(ciphertext, UTF_8));
byte[] message = aead.decrypt(ciphertext,additionalData);
System.out.println(new String(message, UTF_8));
}
说明
tink 已经开源多年了,而且在不少讲google内部软件实践的书籍中都有介绍到,还是很值得使用的,而且tink 支持kms,我们可以很好的进行key 管理
参考资料
https://github.com/google/tink
https://github.com/tink-crypto/tink-java