高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是目前对称密钥加密中比较通用的一种加密方式。
炼金台开放平台所有API均要求对接口的请求内容和响应内容进行AES加密。加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大大提升接口内容传输的安全性。
AES密钥是对接口请求和响应内容进行加密,密文无法被第三方识别,从而防止接口传输数据泄露。 调用方要对请求体先做AES加密,然后对密文进行签名。
请联系对接专员获取。
{% codetabs name="Java", type="java" -%} public static String encrypt() throws Exception {
String key = "调用方的AES秘钥";
String content = "需要加密的内容";
String charset = "UTF-8";
String fullAlg = "AES/CBC/PKCS5Padding";
Cipher cipher = Cipher.getInstance(fullAlg);
IvParameterSpec iv = new IvParameterSpec(initIv(fullAlg));
cipher.init(Cipher.ENCRYPT_MODE,
new SecretKeySpec(Base64.decodeBase64(key.getBytes()), "AES"),
iv);
byte[] encryptBytes = cipher.doFinal(content.getBytes(charset));
return new String(Base64.encodeBase64(encryptBytes));
}
private static byte[] initIv(String fullAlg) throws GeneralSecurityException {
Cipher cipher = Cipher.getInstance(fullAlg);
int blockSize = cipher.getBlockSize();
byte[] iv = new byte[blockSize];
for (int i = 0; i < blockSize; ++i) {
iv[i] = 0;
}
return iv;
}
{%- language name="Python", type="py" -%} 码农正在加班编写中。 {%- language name="PHP", type="php" -%} 码农正在加班编写中。 {%- endcodetabs %}
{% codetabs name="Java", type="java" -%} public String decrypt() throws Exception { String key = "调用方的AES秘钥"; String content = "需要解密的内容";
//反序列化AES密钥
SecretKeySpec keySpec = new SecretKeySpec(Base64.decodeBase64(key.getBytes()), "AES");
//128bit全零的IV向量
byte[] iv = new byte[16];
for (int i = 0; i < iv.length; i++) {
iv[i] = 0;
}
IvParameterSpec ivParameterSpec = new IvParameterSpec(iv);
//初始化加密器并加密
Cipher deCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
deCipher.init(Cipher.DECRYPT_MODE, keySpec, ivParameterSpec);
byte[] encryptedBytes = Base64.decodeBase64(content.getBytes());
byte[] bytes = deCipher.doFinal(encryptedBytes);
return new String(bytes);
}
{%- language name="Python", type="py" -%} 码农正在加班编写中。 {%- language name="PHP", type="php" -%} 码农正在加班编写中。 {%- endcodetabs %}
##FAQ 关于此文档暂时还没有FAQ