广告
返回顶部
首页 > 资讯 > 精选 >Java怎么实现对称加密DES和AES
  • 790
分享到

Java怎么实现对称加密DES和AES

2023-07-05 22:07:23 790人浏览 八月长安
摘要

本文小编为大家详细介绍“Java怎么实现对称加密DES和AES”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现对称加密DES和AES”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实验内容和要求采用

本文小编为大家详细介绍“Java怎么实现对称加密DES和AES”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现对称加密DES和AES”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实验内容和要求

采用Java实现采用对称密码算法的应用软件,所用算法包括DES算法和AES算法。要求该软件具有图形用户界面,能生成密钥,以及对字符串和文件进行加解密

参考代码

// 文件名: test01.javaimport javax.crypto.*;import javax.crypto.spec.*;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;import java.NIO.charset.StandardCharsets;public class test01 extends JFrame implements ActionListener {    private JFileChooser fileChooser = new JFileChooser();    private JTextArea inputArea = new JTextArea(10, 40);    private JTextArea outputArea = new JTextArea(10, 40);    private JButton encryptButton = new JButton("加密");    private JButton decryptButton = new JButton("解密");    private JButton fileButton = new JButton("选择文件");    private JComboBox<String> alGorithmBox = new JComboBox<String>(new String[] {"DES", "AES"});    private JLabel keyLabel = new JLabel("密钥:");    private JTextField keyField = new JTextField(20);    public test01() {        super("对称加密算法实现");        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        JPanel mainPanel = new JPanel();        mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));        JPanel inputPanel = new JPanel();        inputPanel.add(new JLabel("输入:"));        inputPanel.add(new jscrollPane(inputArea));        JPanel outputPanel = new JPanel();        outputPanel.add(new JLabel("输出:"));        outputPanel.add(new JScrollPane(outputArea));        JPanel buttonPanel = new JPanel();        buttonPanel.add(encryptButton);        buttonPanel.add(decryptButton);        buttonPanel.add(fileButton);        buttonPanel.add(algorithmBox);        buttonPanel.add(keyLabel);        buttonPanel.add(keyField);        mainPanel.add(inputPanel);        mainPanel.add(outputPanel);        mainPanel.add(buttonPanel);        encryptButton.addActionListener(this);        decryptButton.addActionListener(this);        fileButton.addActionListener(this);        setContentPane(mainPanel);        pack();        setVisible(true);    }    public void actionPerfORMed(ActionEvent e) {        if (e.getSource() == encryptButton) {            encrypt();        } else if (e.getSource() == decryptButton) {            decrypt();        } else if (e.getSource() == fileButton) {            chooseFile();        }    }    private void chooseFile() {        int returnValue = fileChooser.showOpenDialog(this);        if (returnValue == JFileChooser.APPROVE_OPTION) {            File file = fileChooser.getSelectedFile();            try {                BufferedReader reader = new BufferedReader(new FileReader(file));                inputArea.setText("");                String line = reader.readLine();                while (line != null) {                    inputArea.append(line);                    line = reader.readLine();                    if (line != null) {                        inputArea.append("\n");                    }                }                reader.close();            } catch (IOException e) {                JOptionPane.showMessageDialog(this, "Error reading file: " + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);            }        }    }    private void encrypt() {        try {            String algorithm = (String) algorithmBox.getSelectedItem();            String keyString = keyField.getText();            byte[] keyBytes = keyString.getBytes(StandardCharsets.UTF_8);            SecreTKEy key;            if (algorithm.equals("DES")) {                key = new SecretKeySpec(keyBytes, "DES");            } else {                key = new SecretKeySpec(keyBytes, "AES");            }            Cipher cipher = Cipher.getInstance(algorithm);            cipher.init(Cipher.ENCRYPT_MODE, key);            String input = inputArea.getText();            byte[] inputBytes = input.getBytes(StandardCharsets.UTF_8);            byte[] outputBytes = cipher.doFinal(inputBytes);            String output = new String(outputBytes, StandardCharsets.UTF_8);            outputArea.setText(output);        } catch (Exception e) {            JOptionPane.showMessageDialog(this, "Error encrypting: "                    + e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);        }    }    private void decrypt() {        try {            String algorithm = (String) algorithmBox.getSelectedItem();            String keyString = keyField.getText();            byte[] keyBytes = keyString.getBytes();            SecretKey key;            if (algorithm.equals("DES")) {                key = new SecretKeySpec(keyBytes, "DES");            } else {                key = new SecretKeySpec(keyBytes, "AES");            }            Cipher cipher = Cipher.getInstance(algorithm);            cipher.init(Cipher.DECRYPT_MODE, key);            String input = inputArea.getText();            byte[] inputBytes = input.getBytes();            byte[] outputBytes = cipher.doFinal(inputBytes);            String output = new String(outputBytes);            outputArea.setText(output);        } catch (Exception e) {            JOptionPane.showMessageDialog(this, "Error decrypting: " +                    e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);        }    }    public static void main(String[] args) {        new test01();    }}

实现效果:

Java怎么实现对称加密DES和AES

读到这里,这篇“Java怎么实现对称加密DES和AES”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Java怎么实现对称加密DES和AES

本文链接: https://www.lsjlt.com/news/355620.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java怎么实现对称加密DES和AES
    本文小编为大家详细介绍“Java怎么实现对称加密DES和AES”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现对称加密DES和AES”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。实验内容和要求采用...
    99+
    2023-07-05
  • Java实现对称加密DES和AES的示例代码
    目录实验内容和要求参考代码实验内容和要求 采用Java实现采用对称密码算法的应用软件,所用算法包括DES算法和AES算法。要求该软件具有图形用户界面,能生成密钥,以及对字符串和文件进...
    99+
    2023-05-14
    Java实现对称加密DES AES Java对称加密DES AES Java对称加密 Java DES AES
  • Golang如何实现AES对称加密
    小编给大家分享一下Golang如何实现AES对称加密,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!AES加密AES对称加密简介AES是一个对称密码,旨在取代DES...
    99+
    2023-06-15
  • Java项目中AES与DES的加密解密怎么利用Hutool实现
    Java项目中AES与DES的加密解密怎么利用Hutool实现?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。介绍AES和DES同属对称加密算法,数据发信方将明文(原始数据)和加...
    99+
    2023-05-31
    java aes des
  • Golang如何实现AES对称加密算法
    本篇内容主要讲解“Golang如何实现AES对称加密算法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Golang如何实现AES对称加密算法”吧!前置知识在正式学习加密解密之前,首先看看如何生成...
    99+
    2023-07-05
  • Golang实现AES对称加密的过程详解
    AES加密 AES对称加密简介 AES是一个对称密码,旨在取代DES成为广泛使用的标准。是美国联邦政府采用的一种区块加密标准。 AES对称加密过程 加密解密算法的输入是一个128位分...
    99+
    2022-11-12
  • Golang实现AES对称加密算法实例详解
    目录前言前置知识生成随机数生成随机字符串加密和解密加密解密总结前言 安全总是相对的,对于敏感数据最好要有一定保护措施,尤其是在线数据,通过加密可转换信息为编码,从而防止非法获取。对开...
    99+
    2023-02-21
    golang 对称加密 go语言aes加密 对称加密 aes
  • java中以DES的方式实现对称加密并提供密钥的实例
    java中以DES的方式实现对称加密并提供密钥的实例加密原理DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密的文本块分成两半。使...
    99+
    2023-05-31
    java des 对称加密
  • java对称加密和非对称加密有什么区别
    对称加密和非对称加密是两种常见的加密算法,它们在加密和解密的过程中有以下区别:1. 密钥的数量:对称加密使用同一个密钥来进行加密和解...
    99+
    2023-09-05
    java
  • python实现的AES双向对称加密解密与用法分析
    本文实例讲述了python实现的AES双向对称加密解密与用法。分享给大家供大家参考,具体如下: 高级加密标准(Advanced Encryption Standard,AES),在密码学中又称Rijndae...
    99+
    2022-06-04
    对称 双向 加密解密
  • php怎么实现aes加密
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php怎么实现aes加密在php中我们使用openssl_encrypt来实现加密和使用openssl_decrypt实现解密一:openssl_encrypt方法详...
    99+
    2018-04-30
    php
  • Java 实现 AES 加密和解密完整示例
    1、简介 AES,全称为 Advanced Encryption Standard,是一种分组密码算法,用于保护敏感数据的传输和存储。AES 分为 128 位和 256 位两种密钥长度,可以对数据进行...
    99+
    2023-09-09
    java aes AES 加密 解密
  • python对称和非对称密码怎么实现
    这篇文章主要讲解了“python对称和非对称密码怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python对称和非对称密码怎么实现”吧!对称密码术在此类型中,加密和解密进程使用相同的...
    99+
    2023-06-30
  • python对称加密算法怎么实现
    Python中可以使用cryptography库来实现对称加密算法。以下是一个使用AES加密算法的示例:pythonfrom cry...
    99+
    2023-10-18
    python
  • Node.js中怎么实现非对称加密
    Node.js中怎么实现非对称加密,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。加密、解密方法在Node.js中,负责安全的模块是cryp...
    99+
    2022-10-19
  • Java 实现RSA非对称加密算法
    目录  公钥与私钥  Java实现  公钥与私钥   公钥与私钥是成对的,一般的,我们认为的是公钥加密、私钥解密、私钥签名、公钥验证,有人说成私钥加密,公钥解密时不对的。   公钥与...
    99+
    2022-11-12
  • 怎么用对称加密算法实现C#数据加密
    这篇文章主要讲解了“怎么用对称加密算法实现C#数据加密”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用对称加密算法实现C#数据加密”吧!以下是关于对称加密算法的C#数据加密实现代码,大家...
    99+
    2023-06-18
  • java 中的非对称加密怎么利用DH方式实现
    本篇文章为大家展示了java 中的非对称加密怎么利用DH方式实现,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。实现代码:package com.sahadev;  im...
    99+
    2023-05-31
    java dh 非对称加密
  • 教你用Java实现RSA非对称加密算法
    目录一、非对称加密二、RSA算法三、RSA算法Java语言实现一、非对称加密 非对称加密算法是一种密钥的保密方法。 非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥...
    99+
    2022-11-12
  • java项目中的非对称加密怎么利用RSA方式实现
    java项目中的非对称加密怎么利用RSA方式实现?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。java 中RSA的方式实现非对称加密的实例RSA通俗理解:你只要...
    99+
    2023-05-31
    java rsa 非对称加密
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作