Google Tink多语言跨平台加密演示

简介: Google Tink多语言跨平台加密演示

Tikn是什么


由Google的密码学家和安全工程师联合编写的加密库。源于与Google产品团队合作的丰富经验,提供了即便没有加密经验也可以安全使用的API。


GitHub源码地址: github.com/google/tink


通过官方demo我们可以知道Tink的使用方式。


maven配置方式导入依赖


<dependency>
  <groupId>com.google.crypto.tink</groupId>
  <artifactId>tink</artifactId>
  <version>1.2.0</version>
</dependency>


gradle 配置方式导入依赖


dependencies {
    compile("com.google.crypto.tink:tink:1.2.0")
}

 

demo演示:


import com.google.crypto.tink.Aead;
import com.google.crypto.tink.KeysetHandle;
import com.google.crypto.tink.aead.AeadFactory;
import com.google.crypto.tink.aead.AeadKeyTemplates;
import com.google.crypto.tink.config.TinkConfig;
import java.io.IOException;
import java.security.GeneralSecurityException;
public class TinkDemo {
    public static void main(String[] args) throws GeneralSecurityException, IOException {
        // 基于默认配置进行注册
        TinkConfig.register();
        // 测试用的明文字符串
        String plaintext = "明文";
        // 生成密钥
        KeysetHandle keysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES256_CTR_HMAC_SHA256);
        // 使用密钥材料获取所选的基元的实例
        Aead aead = AeadFactory.getPrimitive(keysetHandle);
        /*
         * 加密
         * 第一个参数是plaintext(明文)
         * 第二个参数是associatedData(相关数据)
         *     可以为null,相当于一个空(零长度)字节数组。
         *     同样,解密时必须提供同样的相关数据。
         */
        // 使用基元实例来完成加密任务
        byte[] ciphertext = aead.encrypt(plaintext.getBytes(),null);
        // 解密
        byte[] decrypted = aead.decrypt(ciphertext, null);
        System.out.println(new String(decrypted));
        System.out.println(ciphertext);
    }
}


Tink 目前除了支持 java 外,还支持 Android、C++、Obj-C


目录
相关文章
|
数据安全/隐私保护 iOS开发
|
监控 JavaScript 数据安全/隐私保护
|
Java 数据安全/隐私保护
Java实现最电话号码的简单加密源码
Java实现最电话号码的简单加密源码
20 0
|
3月前
|
存储 安全 算法
【接口加密】Java中的接口加密实践
【接口加密】Java中的接口加密实践
|
3月前
|
算法 安全 Java
Java 实现 RSA 非对称加密算法-加解密和签名验签
Java 实现 RSA 非对称加密算法-加解密和签名验签
102 0
|
Java 数据安全/隐私保护
java实现加密电话号码,有具体的加密流程注释
java实现加密电话号码,有具体的加密流程注释
31 0
|
4月前
|
存储 算法 安全
3分钟快速了解使用Java进行对称加密
对称加密算法有很多种,其中较为知名的有AES(高级加密标准)、DES(数据加密标准)以及3DES(三重数据加密算法)等。这些算法在不同的场景下有着广泛的应用,为保障数据安全提供了有力支持。
65 0
|
4月前
|
编解码 算法 安全
怎么Java进行MD5摘要加密?
MD5(Message-Digest Algorithm 5)是一种常用的摘要算法,用于将任意长度的数据转换为固定长度的摘要值(通常为128位)。MD5算法的原理是将原始数据分成若干个固定长度的块,对每个块进行一系列的数据处理,最终得到一个128位的摘要值。这个摘要值可以作为数据的唯一标识,用于验证数据的完整性和真实性。
43 1
|
1月前
|
Java 数据安全/隐私保护
java base64 加密 解密
java base64 加密 解密