首页 > 编程语言 >java: 未报告的异常错误java.io.UnsupportedEncodingException; 必须对其进行捕获或声明以便抛出。问题解决。

java: 未报告的异常错误java.io.UnsupportedEncodingException; 必须对其进行捕获或声明以便抛出。问题解决。

时间:2023-12-02 17:12:20浏览次数:45  
标签:UnsupportedEncodingException return 数组 io input 字符串 java null MD5

原问题代码:

/**

  • MD5编码相关的类
  • @author wangjingtao

*/ public class MD5 { // 首先初始化一个字符数组,用来存放每个16进制字符 private static final char[] hexDigits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

/**
 * 获得一个字符串的MD5值
 * 
 * @param input 输入的字符串
 * @return 输入字符串的MD5值
 * 
 */
public static String md5(String input) {
    if (input == null)
        return null;

    try {
        // 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
        MessageDigest messageDigest = MessageDigest.getInstance("MD5");
        // 输入的字符串转换成字节数组
        byte[] inputByteArray = input.getBytes("utf-8");
        // inputByteArray是输入字符串转换得到的字节数组
        messageDigest.update(inputByteArray);
        // 转换并返回结果,也是字节数组,包含16个元素
        byte[] resultByteArray = messageDigest.digest();
        // 字符数组转换成字符串返回
        return byteArrayToHex(resultByteArray);
    } catch (NoSuchAlgorithmException e) {
        return null;
    }
解决后代码:
public static String md5(String input)
{
if (input == null)
return null;
try {
// 拿到一个MD5转换器(如果想要SHA1参数换成”SHA1”)
MessageDigest messageDigest = MessageDigest.getInstance("MD5"); // 输入的字符串转换成字节数组
byte[] inputByteArray = input.getBytes("utf-8"); // Specify the encoding here // inputByteArray是输入字符串转换得到的字节数组
messageDigest.update(inputByteArray); // 转换并返回结果,也是字节数组,包含16个元素
byte[] resultByteArray = messageDigest.digest(); // 字符数组转换成字符串返回
return byteArrayToHex(resultByteArray);
}
catch (NoSuchAlgorithmException | UnsupportedEncodingException e)
{
e.printStackTrace();
// Handle the exception according to your application's requirements return null;
}
}
 

标签:UnsupportedEncodingException,return,数组,io,input,字符串,java,null,MD5
From: https://www.cnblogs.com/DREAM2021/p/17871865.html

相关文章

  • 前端学习-JavaScript学习-js基础-API02-轮播图案例
    自己写的<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</title>......
  • Java入门
    Java入门 Java帝国的诞生一场旷日持久的战争(1995)1972年C语言开始统治贴近硬件,运行极快,效率极高早期开发了很多操作系统,编译器,数据库,网络系统等指针和内存管理1982年C++诞生面向对象兼容C图形领域、游戏等我们要建立一个新的语言:语法有点像C没......
  • 什么是 SAP ABAP Modification-free enhancements
    "Modification-freeenhancements"是SAPABAP中一种开发技术,旨在允许开发者对SAP标准对象进行增强而无需进行修改。这种方法可以确保在将来升级或应用支包时,不会影响到已有的修改。Modification-freeenhancements的主要思想是通过使用EnhancementFramework提供的工具,如......
  • 【JavaSE】时间API
    JDK8版本之前的时间API(了解)Data类SimpleDateFormat类SimpleDateFormat类指定格式查API帮助文档即可SimpleDateFormatDemo.javaimportjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassSimpleDateFormatDemo{pu......
  • 学习笔记4:JavaSE & API(网络编程 & 多线程)
    1、java.net.Socket:(1)定义:Socket(套接字)封装了TCP协议的通讯细节,是的我们使用它可以与服务端建立网络链接,并通过它获取两个流(一个输入一个输出),然后使用这两个流的读写操作完成与服务端的数据交互。(2)方法getInputStream():获取输入流,返回值是InputStream的一个子类实例。ge......
  • Java 初识
    Java初识一、三大版本:writeonce、runanywhere.JavaSE(核心):标准版(桌面程序,控制台开开)JavaME:嵌入式开发(手机,小家电)JavaEE:企业级开发(web端,服务器开发)二、JDK,JRE,JVMJDK:javadevelopmentkitJRE:javaruntimeenvironmentJVM:javavirtualmachine三、Java开发......
  • 什么是 SAP ABAP System Change Option
    系统更改选项(SystemChangeOption)是SAP中用于控制对系统中对象的修改权限的一种机制。在SAP系统中,有许多关键的对象,如程序、表、视图等,这些对象的修改需要谨慎操作,以确保系统的稳定性和一致性。系统更改选项提供了一种灵活的方式,允许管理员对系统中的对象进行精细的权限控制,以防......
  • AbstractApplicationContext的核心方法refresh()解析
    AbstractApplicationContext的refresh()是Spring最核心的方法,没有之一,上帝就是用这个方法创造了Spring的世界。这是一个同步方法,用synchronized关键字来实现的。该方法包含以下12个方法(步骤)。prepareRefresh()obtainFreshBeanFactory()prepareBeanFactory(beanFactory)......
  • Advent of Code 2023 solution [Mathematica/Python]
    Day1Part1(*读取文件*)lines=ReadList["E:\\ExplorerDownload\input.txt",String];(*计算校准值*)calibrationValues=ToExpression[StringJoin[#[[1]],#[[-1]]]]&/@(StringCases[#,DigitCharacter]&/@lines);(*打印总和*)Print......
  • Java 8 仍被广泛使用,占比 50%
    调查中,更多的开发人员选择在生产中使用Java17,而不是Java11。Docker逐渐成为打包Web应用程序的首选,且Spring和SpringBoot的使用率遥遥领先。具体而言,开发者最常使用的 Java版本是 Java8,占比高达 50%;其次分别是 Java17(45%)、Java11(38%)以及 Java20(11%)......