文件md5验证生成器(java版)

2023-11-09

  1. import java.applet.*;   
  2. import java.io.*;   
  3. import java.security.*;   
  4.   
  5. public class HashFile {   
  6.     public static char[] hexChar = {'0''1''2''3',   
  7.                                    '4''5''6''7',   
  8.                                    '8''9''a''b',   
  9.                                    'c''d''e''f'};   
  10.     public static void main(String[] args) throws  
  11.             Exception {   
  12.         String fileName = "D://programs//Foxmail.rar";   
  13.         String hashType = "MD5";   
  14.         System.out.println(hashType + " == " +   
  15.                            getHash(fileName, hashType));   
  16.         hashType = "SHA1";   
  17.         System.out.println(hashType + " == " +   
  18.                            getHash(fileName, hashType));   
  19.         hashType = "SHA-256";   
  20.         System.out.println(hashType + " == " +   
  21.                            getHash(fileName, hashType));   
  22.         hashType = "SHA-384";   
  23.         System.out.println(hashType + " == " +   
  24.                            getHash(fileName, hashType));   
  25.         hashType = "SHA-512";   
  26.         System.out.println(hashType + " == " +   
  27.                            getHash(fileName, hashType));   
  28.   
  29.     }   
  30.   
  31.     public static String getHash(String fileName, String hashType) throws  
  32.             Exception {   
  33.         InputStream fis;   
  34.         fis = new FileInputStream(fileName);   
  35.         byte[] buffer = new byte[1024];   
  36.         MessageDigest md5 = MessageDigest.getInstance(hashType);   
  37.         int numRead = 0;   
  38.         while ((numRead = fis.read(buffer)) > 0) {   
  39.             md5.update(buffer, 0, numRead);   
  40.         }   
  41.         fis.close();   
  42.         return toHexString(md5.digest());   
  43.     }   
  44.   
  45.     public static String toHexString(byte[] b) {   
  46.         StringBuilder sb = new StringBuilder(b.length * 2);   
  47.         for (int i = 0; i < b.length; i++) {   
  48.             sb.append(hexChar[(b[i] & 0xf0) >>> 4]);   
  49.             sb.append(hexChar[b[i] & 0x0f]);   
  50.         }   
  51.         return sb.toString();   
  52.     }   
  53. }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件md5验证生成器(java版) 的相关文章

随机推荐

  • C语言字符串逆转

    define CRT SECURE NO WARNINGS include
  • shell编程一百例 day-1

    shell编程一百例 今晚份 能力有限 未按顺序 未完待续 1 输出 Hello World 2 猜数游戏 3 键盘输入三个数 升序输出
  • 麒麟系统调试

    一 raid 报错 mdadm RUN ARRAY failed Invalid argument 原因 zcat proc config gz 查看配置 驱动未加载全 解决办法 modprobe dm raid modprobe raid
  • 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]...

    前几天CSDN论坛的首页 看到一则帖子 题目是 一道经典的C 题 关于分钱的问题 适合新手阅读 黑客X档案论坛题目 链接如下 http blog csdn net gisfarmer archive 2009 02 08 3869236 a
  • 手术导航系统原理简介、主要工作及应用

    目录 1 手术导航系统简介 2 手术导航系统的工作原理及构造 3 手术导航系统通常需完成四项主要工作
  • 在Windows10环境安装CUDA11.7及PyTorch1.13--使用Nvidia RTX A4000开始炼丹之旅

    在Windows10环境安装CUDA11 7及PyTorch1 13 使用Nvidia RTX A4000开始炼丹之旅 前言 这个双十一 RTX3090矿卡反倒是涨价了 RTX3090Ti当然也涨价了 只好从x宝搞一只工包丽台RTX A40
  • QScintilla应用(1) 安装及简介

    相关网址 下载地址 在线文档 1 下载并解压 将下载的压缩包解压之后 得到以下目录结构 目录结构含义如下 目录名 用途 Qt4Qt5 编译文件夹 生成对应的DLL文件 designer Qt4Qt5 相关的设计师插件的编译文件夹 examp
  • C++ DLUT 上机作业(一)

    文章目录 C DLUT 上机作业 一 1 定义一个分数类如下 要求实现分数的初始化与设置 四则运算及约分以及输出等功能 并在主函数中测试 2 定义并测试日期类 Date 类包括私有数据成员 year month day 公有成员函数实现以下
  • SpringBoot中通过住注解方式使用Redis

    1 SpringBoot中Redis缓存注解的使用 首先在启动类上添加 enableCache注解 表示开始注解缓存功能 特别注意 Spring框架中所有的注解都是通过AOP的原理实现的 即Spring框架为我们创建代理对象 代理对象去实现
  • chatgpt赋能python:Python画布大小是如何设置的

    Python画布大小是如何设置的 介绍 在Python中 我们可以使用各种GUI库来绘制图形界面 无论您是使用Tkinter PyQt还是wxPython 设置画布大小都是一个必须了解的重要概念 画布大小决定了我们可以在屏幕上呈现多少信息
  • Docker技术入门

    文章目录 1 Dockerfile概念 2 Dockerfile 指令 FROM 指定基础镜像 RUN执行命令 CMD 容器启动命令 COPY 复制文件 ADD 更高级的复制文件 ENV 设置环境变量 ARG 构建参数 VOLUME 定义匿
  • 通达信板块监控指标_通达信板块监测指标公式

    通达信板块监测指标公式 稀缺资源 SUM 880505 C REF 880505 C 1 1 1000 0 COLORWHITE 军工航天 SUM 880507 C REF 880507 C 1 1 1000 0 COLORRED 智能电网
  • 小米路由器4A千兆版更换5G芯片和硬件布局后出现的刷机问题

    最近又入手一台小米路由器4A千兆版 打算通过 CH341A 编程器刷成老毛子的 结果一拆机傻眼了 整个电路板上的芯片和硬件布局都换了 这是老板子 这是新板子 两张图可以很清楚的看到有很大的变化 那么 之前的那种刷机方式还管用吗 经过测试后出
  • 程序员水平10分级,你的水平属于哪一级?

    随着技术发展 编程悄然融入了我们的生活 我们已然离不开那些程序和编程语言 很多人都在不同程度地谈论着如何编程 也诞生出很多编程语言排行 那么程序员到底应该如何分级呢 首先要明白什么是程序员 设计自己的Apache Web服务器的家伙 制作一
  • css3动画属性解析:【transform -变形】

    前两篇一起学习了animation和transition 的使用 今天我们终于开始学习transform和translate了 其实translate只是transform的一个属性 只是很多初学者对transform 变形 transla
  • Java 数据库中文变成问号???解决办法

    在连接的URL地址后面加上 url jdbc mysql localhost 3306 test useUnicode true characterEncoding utf8 于是在正式项目里面还发现一个 用于批处理的 还是加上吧 免得以后
  • CRC校验详解(附代码示例)

    目录 1 CRC校验原理 2 生成多项式 3 以CRC 16校验为例讲解编程实现 3 3 1 完全按照CRC原理实现校验 3 3 2 工程中常用CRC校验过程 3 3 3 改进的CRC校验过程 4 以CRC 8校验为例讲解查表法 5 以CR
  • IO和NIO

    什么是I O模型 通常情况下I O操作是比较耗时的 所以为了高效的使用硬件 应用程序可以专门设置一个线程进行I O操作 而另外一个线程则利用CPU的空闲去做其他计算 这种为提高应用执行效率而采用的I O操作方法称为I O模型 当然了 在网络
  • 哪种程序员最挣钱?平均月薪30.8K,网友说这是掌握世界的技术

    20出头 工作没有方向 人生迷茫 这是很多同学都会遇到的情况 播妞经常收到男生粉丝的私信问我 到底学什么技术好啊 确实 男生没一门扎实的技能在手 生活和工作的压力都会很大 虽说条条大路通罗马 但是行业之间的差距还是很大的 如何选择一门高薪且
  • 文件md5验证生成器(java版)

    import java applet import java io import java security public class HashFile public static char hexChar 0 1 2 3 4 5 6 7