java 有哪些jar包直接提供了获得md5值的方法

java 有哪些jar包直接提供了获得md5值的方法,第1张

需要导入一个jar包:commons-codec

代码如下:

import orgapachecommonscodecdigestDigestUtils; 

public class ToMain {

public static void main(String[] args) {

Systemoutprintln(DigestUtilsmd5Hex("baiducom"));

}

}

1、Java

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、名字来源

Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关:如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。

MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。

1、D5就是求字符串的md5,文件就是一个字符串;

2、前台目前就别考虑读文件内容了(大部分浏览器不行) 都让后台做;

可以直接看nodeclub源代码,如下:

var crypto = require('crypto');

exportsencrypt = function (str, secret) {

var cipher = cryptocreateCipher('aes192’, secret);

var enc = cipherupdate(str, 'utf8’, ‘hex’);

enc += cipherfinal(‘hex’);

return enc;

};

exportsdecrypt = function (str, secret) {

var decipher = cryptocreateDecipher('aes192’, secret);

var dec = decipherupdate(str, 'hex’, ‘utf8’);

dec += decipherfinal(‘utf8’);

return dec;

};

exportsmd5 = function (str) {

var md5sum = cryptocreateHash(‘md5’);

md5sumupdate(str);

str = md5sumdigest(‘hex’);

return str;

};

exportsrandomString = function (size) {

size = size || 6;

var code_string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’;

var max_num = code_stringlength + 1;

var new_pass = '’;

while (size > 0) {

new_pass += code_stringcharAt(Mathfloor(Mathrandom() max_num));

size–;

}

return new_pass;

};

eclipse项目在eclipse上查看和修改MD5非常方便,如下图所示:

(1)利用项目的 keystore 文件

(2)通过CERTRSA文件查询MD5签名

具体步骤如下:

1)解压得到RSA文件

       APK以zip文件方式打开,在\META-INF\目录中存在一个RSA后缀的文件,一般名为CERTRSA

2)使用keytool命令获取 MD5签名

用一个密码用MD5加密,然后通过MD5破解到还原后的密码。可以看出现在的MD5密码加密其实也并不是百分百的安全,至少一部分加密后的密码可以在网上免费查出来,原理也相当简单,就是通过数据库比对的方式查询已知的加密密码的MD5来获取到原密码,文章中作者有一点没有提及个解密的网站,据说那个网站现在的解密数据量达到TB级别,现在大部分黑客在入侵的时候都有用到过这个网站的解密功能,相信不少网站的沦陷都有这个解密站点的帮忙。还有一点就是,这个网站对于一些简单的解密是免费的,对于一些复杂的密码,就需要付费了。

原文的作者有提到说利用用户查询MD5密码的时候搜集这些信息,然后制成数据库再卖钱,这一点我觉得可行性还是有的,但是做起来却不是那么容易,毕竟收集比较耗时,而且量并不一定大,有人曾传言:MD5的解密数据都是收集了很多国内外大型社区的用户数据库整理来的,人家用现在成的,省了收集这个程序。按照之前的说法,数据库达到TB级别了,再用这个数据库做破解程序,似乎有点过份了,这个程序,估计得是这个世界上最大的一个程序了。

Linux下查询文件的MD5值:md5sum xxxisomd5 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位

这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e

这里以1txt为需要被加密的文件。

一、 用oppnssl md5 加密字符串和文件的方法。

1 oppnssl md5 加密字符串的方法

a手动输入命令及过程如下:

#openssl //在终端中输入openssl后回车。

OpenSSL> md5 //输入md5后回车

123456 //接着输入123456,不要输入回车。然后按3次ctrl+d。

123456e10adc3949ba59abbe56e057f20f883e //123456后面的就是密文了

解释:为何在输入123456后不回车呢?

是因为openssl默认会把回车符当做要加密的字符串中的一个字符,所以得到的结果不同。如果你输入123456后回车,在按2次ctrl+d。得到的结果是:

OpenSSL> md5

123456

f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的

b或者直接用管道命令

# echo -n 123456 | openssl md5 //必须要有-n参数,否则就不是这个结果了。

e10adc3949ba59abbe56e057f20f883e

解释:为何要加-n这个参数?

-n就表示不输入回车符,这样才能得到正确的结果。如果你不加-n,那么结果和前面说的一样为:

f447b20a7fcbf53a5d5be013ea0b15af //因为openssl不忽略回车符导致的

2用openssl加密文件。

#openssl md 5 -in 1txt

##################################################3

Openssl其他相关加密的命令参数:引自:实用命令:利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密 收藏

一 利用openssl命令进行BASE64编码解码(base64 encode/decode)

1 BASE64编码命令

对字符串‘abc’进行base64编码:

# echo abc | openssl base64

YWJjCg== (编码结果)

如果对一个文件进行base64编码(文件名ttxt):

# openssl base64 -in ttxt

2 BASE64解码命令

求base64后的字符串‘YWJjCg==’的原文:

# echo YWJjCg== | openssl base64 -d

abc (解码结果)

如果对一个文件进行base64解码(文件名tbase64):

# openssl base64 -d -in tbase64

二 利用openssl命令进行md5/sha1摘要(digest)

1 对字符串‘abc’进行md5摘要计算:echo abc | openssl md5

若对某文件进行md5摘要计算:openssl md5 -in ttxt

2 对字符串‘abc’进行sha1摘要计算:echo abc | openssl sha1

若对某文件进行sha1摘要计算:openssl sha1 -in ttxt

三 利用openssl命令进行AES/DES3加密解密(AES/DES3 encrypt/decrypt)

对字符串‘abc’进行aes加密,使用密钥123,输出结果以base64编码格式给出:

# echo abc | openssl aes-128-cbc -k 123 -base64

U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= (结果)

对以上结果进行解密处理:

# echo U2FsdGVkX18ynIbzARm15nG/JA2dhN4mtiotwD7jt4g= | openssl aes-128-cbc -d -k 123 -base64

abc (结果)

若要从文件里取原文(密文)进行加密(解密),只要指定 -in 参数指向文件名就可以了。

进行des3加解密,只要把命令中的aes-128-cbc换成des3就可以了。

注:只要利用openssl help就可以看到更多的安全算法了。

###############################################

二、 利用php的md5函数加密字符串

#touch aphp //创建aphp文件

#vi aphp //用vi 编辑aphp文件

将<php echo md5(123456); >输入进去后保存

#php aphp //运行aphp文件

显示:e10adc3949ba59abbe56e057f20f883e

三、 利用md5sum命令

A在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。可以用下面的命令来获取md5sum命令帮助 man md5sum

#md5sum –help

有个提示:“With no FILE, or when FILE is -, read standard input”翻译过来就是“如果没有输入文件选项或者文件选项为 - ,则从标砖读取输入内容”,即可以直接从键盘读取字符串来加密。

利用md5sum加密字符串的方法

# md5sum //然后回车

123456 //输入123456然后按两次ctrl+d

显示:

123456e10adc3949ba59abbe56e057f20f883e 红色代表加密后的值

还可以用管道命令:

#echo -n '123123' | md5sum

或者写成md5加密脚本,名字叫md5sh,

将以下内容复制进脚本里:

#!/bin/bash

echo -n $1 | md5sum | awk '{print $1}'

保存后,给脚本执行权限。

#sh md5sh 123456

显示:e10adc3949ba59abbe56e057f20f883e

B其实也可以将文本放入文本文件,然后用md5sum 加密改文本,也可以得到字符串加密的值。过程如下:

#touch atxt

#echo -n 123456 > atxt //将123456写进文本文件,不能丢了 –n参数,避免回车符干扰

#md5sum atxt

显示:e10adc3949ba59abbe56e057f20f883e atxt

ctrl+d有两个含义:

一是向程序发送文件输入结束符EOF。

二是向程序发送exit退出指令。程序收到信号后具体动作是结束输入、然后等待,还是直接退出,那就要看该程序捕获信号后是如何 *** 作的了。

md5sum属于第一个含义。两次strl+d了,第一次读取EOF指令,再次捕获就会当成exit指令。而shell一类的程序,会直接把ctrl+d解析为退出指令。

以上就是关于java 有哪些jar包直接提供了获得md5值的方法全部的内容,包括:java 有哪些jar包直接提供了获得md5值的方法、nodejs怎样获取一个上传文件的MD5码、如何查看APK的MD5签名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9499716.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存