首页 > 编程语言 >使用java程序对字符串进行加密

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

时间:2024-09-12 10:52:32浏览次数:15  
标签:加密 String System SHA input 字符串 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());
        }
    }
}

标签:加密,String,System,SHA,input,字符串,java
From: https://blog.csdn.net/C7211BA/article/details/142169424

相关文章

  • 28 Java中的循环结构
    Java中的循环结构在Java编程中,循环结构是实现重复执行代码块的关键工具。通过循环结构,程序员可以高效地处理大量数据、执行重复任务,从而简化代码并提高程序的效率。本文将深入探讨Java中的循环结构,帮助你全面理解其工作原理及实际应用。1.前置知识在深入探讨循环结构之......
  • Java反射语法
    1.反射1.1反射的概述【理解】反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。1.2获取Class类对象的三种方式【应用】三种......
  • Java技术深度探索:高并发场景下的线程安全与性能优化
    Java技术深度探索:高并发场景下的线程安全与性能优化在当今的软件开发领域,随着互联网应用的日益复杂和用户量的激增,高并发成为了一个不可忽视的技术挑战。Java,作为一门广泛应用于企业级开发的编程语言,其内置的并发支持机制如线程(Thread)、锁(Lock)、并发集合(ConcurrentCollect......
  • 在线考试|基于java的模拟考试系统小程序(源码+数据库+文档)
    在线考试|模拟考试系统|模拟考试系统小程序目录基于java的模拟考试系统小程序一、前言二、系统设计三、系统功能设计四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专......
  • Java程序部署
    在Java应用程序中,通常我们编写的代码(Java源代码)会被编译成字节码(即.class文件),这些字节码文件是Java虚拟机(JVM)可以执行的二进制格式。然而,当谈到“最后启动的时候是二进制文件+配置文件”时,这通常指的是Java应用程序的部署和运行方式,其中不仅包含了编译后的二进制文件(即.class文件或......
  • 计算机毕业设计必看必学!! 89352 基于python的网上挂号预约系统,原创定制程序, java、P
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,医院当然也不例外。网上挂号预约系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Python技术构建的一个管理系统。整个开发过程首先对软件系统进......
  • javascript 计算今天离目标日期还有多少天
    /***计算从今天起到指定日期还有多少天。*@param{string}fixedDate-目标日期字符串,格式应为"YYYY-MM-DD"。*@returns{number}-从今天起到目标日期的天数。*@example*daysUntil("2024-12-25");//假设今天是2024-09-11,将返回104*/exportfunction......
  • 关于一些字符串操作的常用方法
    字符串操作关于一些字符串操作常用方法字符串截取stringtemp="大家好,我叫张三。";//索引从0开始截取索引5后面的所有字符串(包括5)Console.WriteLine(temp.Substring(5));//索引从0开始,截取索引5后面4个字符串(包括5)......
  • Java毕业设计之新能源汽车销售管理系统
    项目技术架构:该SSM+Vue的校园二手交易系统,后端采用SSM架构,前端采用Vue+ElementUI实现页面的快速开发,并使用关系型数据库MySQL存储系统运行数据。本系统分为两种角色,分别是系统管理员,前台用户。核心主要功能:系统主要功能包括前台首页、网站公告、全部商品、商品搜索、分类展......
  • java学习9.11
    IDEA里导入mybatis,lombok等依赖成功连接好数据库。并将MYSQL数据库同时用navicat连接便利创建表等操作。设计实体类student并在数据库设计好表接下来就是如何实现在数据库里的增删改查设计接口类mapper,将操作简化最后能正常运行实现功能。总的来说这一块内容,刚开始学,肯定......