使用JDK自带的MessageDigest计算消息摘要

上代码

/**
* 使用JDK自带MessageDigest
*/
public class MessageDigestUtils {
/**
* 计算消息摘要
* @param algorithm 消息摘要算法
* @param in 数据流
* @return 消息摘要
* @throws IOException
* @throws NoSuchAlgorithmException
*/
public static byte[] digest(String algorithm, InputStream in)
throws IOException, NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance(algorithm); try {
byte[] buf = new byte[4096];
int r;
while ((r = in.read(buf)) != -1) {
md.update(buf, 0, r);
}
} finally {
in.close();
} return md.digest();
} public static byte[] digest(String algorithm, File file)
throws NoSuchAlgorithmException, FileNotFoundException, IOException { return digest(algorithm, new FileInputStream(file));
} public static byte[] digest(String algorithm, String text, String encoding)
throws NoSuchAlgorithmException, UnsupportedEncodingException, IOException { return digest(algorithm, new ByteArrayInputStream(text.getBytes(encoding)));
}
}

使用JDK自带的MessageDigest计算消息摘要的更多相关文章

  1. SHA_1计算消息摘要

    /** * SHA_1计算消息摘要 * @param bytes 待计算数据 * @return */ public static String SHA_1(byte[] bytes) { Strin ...

  2. MessageDigest消息摘要

    <1>MessageDigest基础 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法. MessageDigest 对象开始被初始化.该对象通 ...

  3. JDK自带的日志Logging

    OK,现在我们来研究下JDK自带的日志Logger. 从jdk1.4起,JDK开始自带一套日志系统.JDK Logger最大的优点就是不需要任何类库的支持,只要有Java的运行环境就可以使用. 相对于 ...

  4. jdk自带的MD5进行数据的加密与解密

    package com.tools.util; import java.io.IOException; import java.io.UnsupportedEncodingException; imp ...

  5. jdk自带的数据库derby的基本使用以及注意事项(mac为例),附java demo

    文章目录 安装 环境变量 验证是否安装成功 启动 本地启动 允许远程连接的启动方式: 在启动过程中可能遇到的错误(远程连接的时候会出现): 1 2 连接测试,创建数据库 方法一(推荐) 方法二 jav ...

  6. 一些JDK自带的性能分析利器

    有时候碰到服务器CPU飙升或者程序卡死之类的问题,一般都不太好定位.这类bug一般都隐藏的比较深并且还可能是偶发性的,比较棘手. 对于此类问题,一般我们都有固定的分析流程.借助于JDK自带的一些分析工 ...

  7. JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)

    一.前言 我们在日常学习中,对一个java代码有问题,不知道jvm内部怎么进行解析的时候:有个伟大壮举就是反编译,这样就可以看到jvm内部怎么进行对这个java文件解析的!我们可以使用JDK自带的ja ...

  8. 使用JDK自带的visualvm进行性能监测和调优

    使用JDK自带的visualvm进行性能监测和调优   1.关于VisualVm工具  VisualVM 提供在 Java 虚拟机 (Java Virutal Machine, JVM) 上运行的 J ...

  9. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

随机推荐

  1. NodeJs的包漏洞扫描与漏洞测试攻击

    一个典型的Node应用可能会有几百个,甚至上千个包依赖(大部分的依赖是间接的,即下载一个包,这个包会依赖其他的好多包),所以最终的结果是,应用程序就会像是这个样子的:

  2. DATA VISUALIZATION – PART 1

    Introduction to Data Visualization – Theory, R & ggplot2 The topic of data visualization is very ...

  3. [asp.net mvc 奇淫巧技] 03 - 枚举特性扩展解决枚举命名问题和支持HtmlHelper

    一.需求 我们在开发中经常会遇到一些枚举,而且这些枚举类型可能会在表单中的下拉中,或者单选按钮中会用到等. 这样用是没问题的,但是用过的人都知道一个问题,就是枚举的命名问题,当然有很多人枚举直接中文命 ...

  4. RedHat7上安装MySQL5.7.16

    1.查看系统中是否已将安装MySQL,如果安装了,需要卸载. [root@chenguo etc]# rpm -qa|grep -i mysql 2.创建用户和组 [root@chenguo ~]# ...

  5. python 获取utc时间转化为本地时间

    import datetime timenow = (datetime.datetime.utcnow() + datetime.timedelta(hours=8)) timetext = time ...

  6. 微信小程序开发《二》:http请求的session管理

    作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session ...

  7. 网络编程应用:基于TCP协议【实现一个聊天程序】

    要求: 基于TCP协议实现一个聊天程序,客户端发送一条数据,服务器端发送一条数据 客户端代码: package Homework1; import java.io.IOException; impor ...

  8. 如何动态加载js文件,$.getScript()方法的使用

    有时候我们需要动态在页面中加载js文件,jquery封装了getScript()方法,不用自己再创建标签了. 写法: $.getScript("name.js",function( ...

  9. Iterator invalidation(迭代器失效)

    一.vector 所有读操作.swap.std::swap:都不会引起迭代器失效... clear.operator=.assign:都会引起全部变量迭代器失效 reserve.shrink_to_f ...

  10. Thinkphp 3.0-3.1版代码执行漏洞

    近日360库带计划中播报的ThinkPHP扩展类库的漏洞已经查明原因:系官方扩展模式中的Lite精简模式中存在可能的漏洞(原先核心更新安全的时候 并没有更新模式扩展部分,现已更新).对于使用标准模式或 ...