阐述Java服务端DES加解密规则, 可兼容iOS自带DES加密方式
先定义其加密参数规则,如下:
private static final String KEY_ALGORITHM = "DES";
private static final String CIPHER_TRANSFORMATION = "DES/CBC/PKCS5Padding";
private static final String CHARSET = "UTF-8";private static final byte[] SPECIFICATION = { 1, 2, 3, 4, 5, 6, 7, 8 };
加密方式:
try {
byte[] data = content.getBytes(CHARSET);
IvParameterSpec parameterSpec = new IvParameterSpec(SPECIFICATION);
SecretKeySpec sKey = new SecretKeySpec(key.getBytes(),
KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(CIPHER_TRANSFORMATION);
cipher.init(Cipher.ENCRYPT_MODE, sKey, parameterSpec);
byte[] results = cipher.doFinal(data);
return Base64.encode(results);
} catch (Throwable t) {
t.printStackTrace();
}
解密方式:
try {
byte[] prepares = Base64.decode(content);
IvParameterSpec parameterSpec = new IvParameterSpec(SPECIFICATION);
SecretKeySpec sKey = new SecretKeySpec(key.getBytes(),
KEY_ALGORITHM);
Cipher cipher = Cipher.getInstance(CIPHER_TRANSFORMATION);
cipher.init(Cipher.DECRYPT_MODE, sKey, parameterSpec);
byte[] results = cipher.doFinal(prepares);
return new String(results, CHARSET);
} catch (Throwable t) {
t.printStackTrace();
}
这里的SPECIFICATION数组长度为8
原文地址:https://blog.csdn.net/weixin_44904409/article/details/89355491
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。