java md5
需求是,上传文件到HDFS,然后生成同名的MD5文件,基本示例如下:
public static String getMD5(InputStream inputStream)
{
byte[] buffer = new byte[1024];
int len = 0;
try
{
MessageDigest messageDigest = MessageDigest.getInstance("MD5");
while ((len = inputStream.read(buffer)) != -1)
{
messageDigest.update(buffer, 0, len);
}
BigInteger bigInteger = new BigInteger(1, messageDigest.digest());
String hashtext = bigInteger.toString(16);
while(hashtext.length() < 32 ){
hashtext = "0"+hashtext;
}
return hashtext;
}
catch (Exception e)
{
return null;
}
}
尤其需要注意的是第一段代码中的补0,如果不补0,这就会跟使用md5sum命令生成的数据有差别,这样使用md5sum -c 进行检查的时候,是会报错的。
报数据的格式不正确,提示错误不是校验失败。
try {
//mkdir -p then upload file
String resDir = new File(softwareEntity.getResUri()).getParentFile().getPath();
//System.out.println(resDir);
HdfsUtil.getInstance().mkdir(resDir);
HdfsUtil.getInstance().createFile(softwareEntity.getResUri(), file.getBytes());
//upload the md5 file to the same directory
String md5=EncryptionUtil.getMD5(file.getInputStream());
StringBuilder sbFileCont = new StringBuilder(md5);
if(md5!=null)
{
String twoSpaces = " " ;
sbFileCont.append(twoSpaces);
sbFileCont.append(file.getOriginalFilename());
sbFileCont.append("\n");
HdfsUtil.getInstance().createFile(softwareEntity.getResUri()+".md5",sbFileCont.toString().getBytes());
}
else
throw new ServiceException("Something wrong when gererate md5 digest for file" + softwareEntity.getResUri()); } catch (IOException e) {
throw new ServiceException("Save file error.", e);
} catch (URISyntaxException e) {
throw new ServiceException("upload file to hdfs error",e);
}
java md5的更多相关文章
- js和java MD5加密
项目中用到js MD5加密和后台java MD5加密,刚开始加密后两个不一致,网上找了好久终于找到一个啦,记下来: md5.js /* * A JavaScript implementation of ...
- javascript md5 二次加密 和 java md5 二次加密结果不同
最近研究httpclient post 时遇到了一个问题,很费解. js md5(str) 和 java md5(str),第一次md5 加密结果一样,(当时忽略了大小写问题,java 大写,js小 ...
- 解决Javascript md5 和 Java md5 中文加密后不同问题
Javascript md5 和 Java md5 带中文字符加密结果不一致,可以通过编码进行转化. javascript可以使用encodeURLComponent将中文先转化一次再进行MD5加密. ...
- Java MD5机密算法的使用
MD5 是常用的加密算法,是不可逆的.既只能加密,但不能解密. package cn.com.ctsi.csdp.base.util; import java.security.MessageDige ...
- java MD5 32位加密
import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5 ...
- C# java MD5加密方不一致问题
说来惭愧,做开发几年了,一直在吸取,今天也写写自已关于技术的一点点理解,不正之处,请大家多多指点. 由于之前开发的项目使用的是C#,用户信息使用的C#的MD5加密码方式,而现在需要切换到Java平台下 ...
- Java MD5校验
Java 生成MD5 MD5(Message Digest Algorithm),消息摘要算法,一般用于校验文件的完整性.Java内置已经实现了MD5,与SHA1算法,利用java.security. ...
- java MD5 加密
使用javaMD5.jar ========================================== 使用java的security类 ========================== ...
- Java MD5加密与RSA加密
区别: MD5加密: 加密时通过原字符串加密成另一串字符串 解密时需要原加密字符串进行重新加密比较两次加密结果是否一致 T=RSA加密: 加密时通过原字符串生成密钥对(公钥+私钥) 解密时通过公钥和私 ...
- java MD5/AES/DES加解密汇总
package com.test.test1.util; import java.security.MessageDigest; import java.security.SecureRandom; ...
随机推荐
- IntelliJ IDEA 转移C盘.IntelliJIdea(索引目录)
转移原因: C盘是机械硬盘,并且容量不多的情况下,建议转移. 转移步骤: 找到索引目录 win10系统下默认路径:C:\Users\asus\.IntelliJIdea2016.2 *复制或剪切到新的 ...
- Microsoft Visual Studio 2008 未能正确加载包“Visual Web Developer HTML Source Editor Package” | “Visual Studio HTM Editor Package”
在安装Microsoft Visual Studio 2008 后,如果Visual Studio 2008的语言版本与系统不一致时,比如:在Windows 7 English System 安装Vi ...
- [转]DbFirst数据验证
转自:Data Validate 之 Data Annotation 什么是Data Annotation ? 如何使用 ? 自定义Validate Attribute EF Db first中使用 ...
- Bootstrap之表单控件状态
Bootstrap中的表单控件状态主要有三种:焦点状态,禁用状态,验证状态. 一.焦点状态:该状态告诉用户可输入或选择东西 焦点状态通过伪类“:focus”以实现. bootstrap.css相应 ...
- 除去String字符串里面指定的字符串
主要用到String的两个方法,分别是subString(int len)或subString(int start,int end)和str.indexOf(String str1) 思路:先判断指定 ...
- REST服务介绍
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } RESTful service是一种架构模式,近几年比 ...
- js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就 ...
- SharePoint 2013 图文开发系列之创建内容类型
SharePoint内容类型,是很有特色的,就好比发布新闻,同在一张列表里,可以由内容类型区分图片新闻.文字新闻等,顾名思义,就是在一张列表里发布不同类型的项目. 1.添加新项目,选择SharePoi ...
- windows下安装web服务器
有条件下还是在linux下部署.window上真心问题挺多的. 推荐安装Visual-NMP,轻量级.组件升级方面等. Nginx绑定IPv4和IPv6的方法 listen 80; listen [: ...
- JNI笔记1
一.什么是JNI Java Native Interface(JNI)是Java语言的本地编程接口 是 Java 与操作系统本地代码互相调用的功能的接口 二.Java 调用C/C++步骤: 1.在Ja ...