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,支持加减乘除,括号,小数点,√,^ 运算