使用java程序对字符串进行加密

程序功能

程序的功能是对用户输入的字符串,使用常见的三种加密算法(MD5、SHA-1 和 SHA-256)进行加密,并输出每种算法加密后的结果。
主要步骤包括:
用户通过控制台输入一个字符串。
程序使用 MessageDigest 类,对输入的字符串分别进行 MD5、SHA-1 和 SHA-256 算法的加密处理。
每种加密算法的输出结果以 16 进制的形式显示,便于阅读和理解加密后的数据。
通过这个程序,用户可以了解不同加密算法对同一字符串的加密效果。
在这里插入图片描述

代码

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Scanner;public class StringEncryptor {// 对输入字符串进行加密public static String encrypt(String input, String algorithm) throws NoSuchAlgorithmException {MessageDigest md = MessageDigest.getInstance(algorithm);byte[] digest = md.digest(input.getBytes());StringBuilder sb = new StringBuilder();for (byte b : digest) {sb.append(String.format("%02x", b));}return sb.toString();}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入要加密的字符串:");String input = scanner.nextLine();try {// 使用 MD5 加密String md5Encrypted = encrypt(input, "MD5");System.out.println("MD5 加密结果: " + md5Encrypted);// 使用 SHA-1 加密String sha1Encrypted = encrypt(input, "SHA-1");System.out.println("SHA-1 加密结果: " + sha1Encrypted);// 使用 SHA-256 加密String sha256Encrypted = encrypt(input, "SHA-256");System.out.println("SHA-256 加密结果: " + sha256Encrypted);} catch (NoSuchAlgorithmException e) {System.out.println("加密算法不存在: " + e.getMessage());}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1537287.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

DFS:深搜+回溯+剪枝实战解决OJ问题

✨✨✨学习的道路很枯燥,希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 排列、子集问题 1.1 全排列I 1.2 子集I 1.3 找出所有子集的异或总和 1.4 全排列II 1.5 字母大小写全排列 1.6 优美的排列 二 组合问题 2.1 电话号码的数字组合 …

三菱模拟量入门接线与编程详解

当我们学会完基础后。下面就需要学习模拟量,希望小编的文章对读者有所帮助! 什么是模拟量? 模拟量是指一些连续变化的物理量(简单来说就是连续变化的量),在PLC中通常电压信号为0~10V,电流信号为4~20mA。 为什么要使用模拟量? 当我们需要检测如电压、电流、压力、速度、…

【计网】从零开始使用TCP进行socket编程 --- 客户端与服务端的通信实现

阵雨后放晴的天空中, 出现的彩虹很快便会消失。 而人心中的彩虹却永不会消失。 --- 太宰治 《斜阳》--- 从零开始使用TCP进行socket编程 1 TCP与UDP2 TCP服务器类2.1 TCP基础知识2.2 整体框架设计2.3 初始化接口2.4 循环接收接口与服务接口 3 服务端与客户端测试…

JS落叶动画代码分析

秋天到了,秋高气爽的季节。我们来做一个落叶动画吧!来迎接秋天的到来 文字可以更换。 1.目录如下 在线演示:点击我在线演示 images两张照片,首先,你得要准备一个vscode编辑器。和一个chorme浏览器或edge浏览器。 …

PyTorch 激活函数及非线性变换详解

激活函数是深度学习模型的重要组成部分,它们引入非线性,从而使模型能够更好地拟合复杂的数据模式。本文将详细介绍激活函数的作用、常见类型、经典应用示例,并比较它们的优缺点。 激活函数的作用 激活函数的主要作用是引入非线性变换&#…

理解高并发

文章目录 1、如何理解高并发2、高并发的关键指标3、高并发系统设计的目标是什么?1_宏观目标2_微观目标1.性能指标2.可用性指标3.可扩展性指标 4、高并发的实践方案有哪些?1_通用的设计方法1.纵向扩展(scale-up)2.横向扩展&#xf…

ROS组合导航笔记2:使用外部定位系统

在上一单元中,我们了解了如何合并不同传感器的数据以生成机器人的姿势估计。因此,基本上,我们介绍了图表的以下部分,其中向 robot_localization 节点提供了不同的传感器,以便通过卡尔曼滤波器进行合并。 但是...图表的…

背包问题 总结详解

就是感觉之前 dp 的 blog 太乱了整理一下。 0-1 背包 例题:P1048 朴素算法 思路 对于一个物品,我们可以选,也可以不选。 我们用表示第 i 件物品的重量,表示第 i 件物品的价值。 考虑表示前 i 件物品放入容量为j的背包中的最大价值。 如…

【图像匹配】基于Harris算法的图像匹配,matlab实现

博主简介:matlab图像代码项目合作(扣扣:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于Harris算法的图像匹配,用matlab实现。 一、案例背景和算法介绍 …

Observability:日志管理的最佳实践 - 利用日志更快地解决问题

作者:来自 Elastic Luca Wintergerst•David Hope•Bahubali Shetti 在当今快速发展的软件开发环境中,高效的日志管理对于维护系统可靠性和性能至关重要。随着基础架构和应用程序组件的不断扩展和复杂化,运营和开发团队的职责也不断增加且越来…

yolov8区域入侵检测警报系统-pyside6可视化界面

yolov8区域入侵检测警报系统,是微智启软件工作室基于yolov8目标追踪和pyside6开发,在window的pycharm或者vscode里运行,可以应用于多个领域,检测统计物体个数以及入侵语音警报。 功能介绍 可以应用于 江河流域危险区域禁止游泳警…

利用AI技术提升ISP处理:图像质量的四大关键模块

随着智能手机和数码相机的飞速发展,图像质量成为了影响用户体验的关键因素之一。图像信号处理(ISP,Image Signal Processing)管道是将图像传感器捕捉到的原始数据转化为高质量输出的核心技术。然而,传统的ISP处理方法在…

螺丝、螺母、垫片等紧固件常用类型详细介绍

螺钉、螺母、垫片等紧固件介绍 螺钉 杯头内六角 首先介绍一下杯头内六角,杯头内六角是我们用的最常见的一种螺钉,如果你对选择螺钉没有什么想法,可以直接无脑选杯头内六角去使用。 比如说我们有一个零件加工了通孔,另一个零件加…

vmware,centos8(虚拟机) 的安装

安装vmware 点击下方网址 虚拟机安装地址https://www1.msc23.cn/vm/?bd_vid8829610582362807097选择VMware17 打开文件所在地,双击安装 同意条款 选择安装位置 不将VMware配置到环境变量path 不检查更新,不加入客户体验 创建桌面快捷方式 开始安装 安装完成…

CSP-J/S 考试介绍

CSP-J/S是由中国计算机学会(CCF)主办的非专业级别的软件能力认证考试。 CSP-J/S全称为CCF CSP-J/S,是CCF计算机软件能力认证(简称CCFCSP认证)中的一个部分,重点考察软件开发者实际编程能力。该项认证由CCF…

MTC完成右臂抓取放置任务\\放置姿态设置

#include "mtc_tutorial/mtc_glass_bottle.hpp" static const rclcpp::Logger LOGGER rclcpp::get_logger("mtc_glass_right"); // 获取节点基础接口的实现 rclcpp::node_interfaces::NodeBaseInterface::SharedPtr MTCTaskNode_Right::getNodeBaseInterf…

棋盘格角点检测-libcbdetect

libcbdetect libcbdetect 是一个用于自动子像素级别的棋盘格(checkerboard)、棋盘(chessboard)以及 Deltille 图案检测的库。它主要由 C 编写,旨在提供高精度、高鲁棒性的角点检测和图案组合功能,是一种基…

使用HTML和CSS制作网页的全面指南

目录 引言 一、理解HTML 1. 什么是HTML? 2. HTML文档的基本结构 3. 常用的HTML标签 4. 示例:创建一个简单的HTML页面 二、理解CSS 1. 什么是CSS? 2. CSS的使用方式 3. CSS选择器和属性 4. 常用的CSS属性 三、创建网页的步骤 1. 规…

【Java数据结构】二叉树

目录 树树的特征树的概念 二叉树两种特殊的二叉树二叉树的性质二叉树的基本操作4 种遍历二叉树的方式判断一棵树是不是完全二叉树获取二叉树总共的节点个数获取叶子节点的个数获取第 k 层的节点个数获取二叉树的高度检测值为 value 的元素是否存在 二叉树基本操作完整代码 树 …

VS code 安装使用配置 Continue

Continue 插件介绍 Continue 是一款高效的 VS Code 插件,提供类似 GitHub Copilot 的功能,旨在提升开发者的编程效率。其配置简单,使用体验流畅,深受开发者喜爱。 主要功能特点 智能代码补全 Continue 能够基于当前代码上下文生…