需求是,上传文件到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的更多相关文章

  1. js和java MD5加密

    项目中用到js MD5加密和后台java MD5加密,刚开始加密后两个不一致,网上找了好久终于找到一个啦,记下来: md5.js /* * A JavaScript implementation of ...

  2. javascript md5 二次加密 和 java md5 二次加密结果不同

    最近研究httpclient post 时遇到了一个问题,很费解. js  md5(str) 和 java md5(str),第一次md5 加密结果一样,(当时忽略了大小写问题,java 大写,js小 ...

  3. 解决Javascript md5 和 Java md5 中文加密后不同问题

    Javascript md5 和 Java md5 带中文字符加密结果不一致,可以通过编码进行转化. javascript可以使用encodeURLComponent将中文先转化一次再进行MD5加密. ...

  4. Java MD5机密算法的使用

    MD5 是常用的加密算法,是不可逆的.既只能加密,但不能解密. package cn.com.ctsi.csdp.base.util; import java.security.MessageDige ...

  5. java MD5 32位加密

    import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5 ...

  6. C# java MD5加密方不一致问题

    说来惭愧,做开发几年了,一直在吸取,今天也写写自已关于技术的一点点理解,不正之处,请大家多多指点. 由于之前开发的项目使用的是C#,用户信息使用的C#的MD5加密码方式,而现在需要切换到Java平台下 ...

  7. Java MD5校验

    Java 生成MD5 MD5(Message Digest Algorithm),消息摘要算法,一般用于校验文件的完整性.Java内置已经实现了MD5,与SHA1算法,利用java.security. ...

  8. java MD5 加密

    使用javaMD5.jar ========================================== 使用java的security类 ========================== ...

  9. Java MD5加密与RSA加密

    区别: MD5加密: 加密时通过原字符串加密成另一串字符串 解密时需要原加密字符串进行重新加密比较两次加密结果是否一致 T=RSA加密: 加密时通过原字符串生成密钥对(公钥+私钥) 解密时通过公钥和私 ...

  10. java MD5/AES/DES加解密汇总

    package com.test.test1.util; import java.security.MessageDigest; import java.security.SecureRandom; ...

随机推荐

  1. 异步编程系列06章 以Task为基础的异步模式(TAP)

    p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提 ...

  2. Composer根据Name显示与隐藏

    //主要设置 模型的显示与隐藏 private void TransmissionByData_AxSendSelectionChange(string domName, bool isVisible ...

  3. 关于大数据企业信息查询的API该怎么写

    最近在看API相关的案例,做的是.net开发的工作 对API开发这块很是迷茫,不知道从哪入手,园子里面的朋友有没有研究这块的给点建议 公司目前准备做一款企业数据查询的网站,让我负责API接口这块,基于 ...

  4. PHP四个阶段目标以及第一阶段学习内容

    PHP课程体系主要分为四个阶段,第一阶段讲的是网页HTML和数据库MySQL,第一阶段要学会网页制作的基础知识,熟用各种基本标签,对数据库进行操作,各项考核都能够达标,拿出出众的项目展示. 在第二个阶 ...

  5. Javascript实现格式化输出

    前两天看面试题,其中有一道要实现js的格式化输出,具体给出的是: Javascript实现格式化输出,比如输入999999999,输出为999,999,999 我的实现方式是 function for ...

  6. DYN-B201 Dynamics CRM 云生产力解决方案与功能简介

    DYN-B201 Dynamics CRM 云生产力解决方案与功能简介 讲师:王健.林松涛Dynamics CRM 云产品正式落地中国,CRM 与 Azure.O365 深度整合无缝集成,带来无与伦比 ...

  7. How To Collect ULS Log from SharePoint Farm

    We can use below command to collect SharePoint ULS log from all servers in the Farm in PowerShell. M ...

  8. Objective-C内存管理之-引用计数

    本文会继续深入学习OC内存管理,内容主要参考iOS高级编程,Objective-C基础教程,疯狂iOS讲义,是我学习内存管理的笔记 内存管理 1 内存管理的基本概念 1.1 Objective-C中的 ...

  9. sublime text 乱码生成.dump问题的解决方法

    title: sublime text 乱码生成.dump问题的解决方法 tags: sublime text,sublime text 3,.dump,乱码 grammar_cjkRuby: tru ...

  10. js中A包含B的写法与分割字符串的方法

    在java中A包含B的写法 if(A.contains(B)){ ... } 在js中没有contains方法,应该使用下面这种方法: var an = "传染性.潜伏性.破坏性" ...