java 加减密方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 加减密方式相关的知识,希望对你有一定的参考价值。
public static void main(String[] args) {
Path path = Paths.get(StandardSystemProperty.JAVA_IO_TMPDIR.value(), "cipher");
String s = "基于流的方式,在传输或存取时进行加减密";
try {
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(256);
SecretKey secretKey = keyGen.generateKey();
Cipher cipher = Cipher.getInstance(secretKey.getAlgorithm());
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
try(OutputStream out = new CipherOutputStream(Files.newOutputStream(path, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.CREATE), cipher)) {
out.write(s.getBytes(StandardCharsets.UTF_8));
out.flush();
}
cipher.init(Cipher.DECRYPT_MODE, secretKey);
try(InputStream in = new CipherInputStream(Files.newInputStream(path), cipher)) {
byte[] bytes = ByteStreams.toByteArray(in);
String s1 = new String(bytes, StandardCharsets.UTF_8);
System.out.println("s1 = " + s1);
System.out.println(s.equals(s1));
}
} catch (IOException | NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {
e.printStackTrace();
}
}
以上是关于java 加减密方式的主要内容,如果未能解决你的问题,请参考以下文章
AES/ECB/NoPadding 加减密
spring cloud day07config
Java的加减乘除问题
java 实现时间加减操作
java 交换两个数的值(临时变量,加减,异或)
Java_计算器001,支持加减乘除,括号,小数点,√,^ 运算