接口加密 本文介绍接口加密内容。 1 如何启用加密功能 客户端发起请求时添加请求Header头,decryptedtrue 即可启用接口加密功能。 2 加密算法说明 该功能涉及到三种国密算法,分别为非对称加密SM2、对称加密SM4及特征码算法HmacSM3。 2.1 非对称加密SM2 类似RSA的非对称加密,用来加密客户生成的对称加密SM4密钥。SM2公钥在AI能力开放平台( 2.2 对称加密SM4 客户端自行生成128或者256位SM4密钥,采用BC包(BouncyCastle),格式为SM4/ECB/PKCS5Padding。 2.3 特征码算法HmacSM3 Hmac和SM3算法配合生成特征码串,防止接口被拦截篡改,生成特征码时的密钥需使用。 encryptedHashKey字段传递到服务端。 2.4 客户端加密步骤 1、从控制台获取公钥串,使用Base64解密获取公钥字节数组。 2、生成SM4对称密钥字节数组,使用第1步的公钥加密对称密钥,并使用Base64加密结果,填入ciphertextBlob字段。 3、使用第2步生成的对称密钥加密接口原版Body体JSON串,并使用Base64加密结果,填入encryptedBody字段。 4、生成Hmacsm3哈希密钥,使用公钥进行加密,并使用Base64加密结果,填encryptedHashKey字段。 5、使用Hmacsm3及第4步哈希密钥,提取ciphertextBlob字段特征码并使用Base64加密结果,填入ciphertextBlobHash字段。 6、使用Hmacsm3及第4步哈希密钥,提取encryptedBody字段特征码并使用Base64加密结果,填入encryptedBodyHash字段。