这些hash你了解吗?

hash大家都不陌生,不同的hash又不一样的特征,今天的主要内容就是带大家一起来学习了解一下不同的hash。

MD5

md5大家是最不陌生的,我们常见的有32位、16位。下面看一下字符串‘admin’经过md5加密后的hash值:

md5(admin,32) = 21232f297a57a5a743894a0e4a801fc3md5(admin,16) = 7a57a5a743894a0e

加密来源

http://www.cmd5.com/

MD5的特征就是由大写字母、小写字母以及数字组成的32位或者16位的字符串。

MySQL

关于mysql的用户hash一般分为两种,一种是老版本的hash在版本小于4.1的数据库,一种是最新的加密方式,下面一一介绍。

MySQL-Old

MySQL-Old是当服务器生成长密码哈希值时,允许维持同4.1之前的客户端的向后兼容才用的,我们来看一下字符串‘123456’经过MySQL-Old加密后的hash,如下:

565491d704013245

使用这种加密需要设置mysql,打开old_passwords选项,使用如下命令打开:

set old_passwords=on;

测试结果如图:

MySQL-Old的特征是第一位和第九位是0到7的数字,其他的是小写字母加数字的组合。

MySQL-new

在新的mysql版本,字符串’123456‘经过加密后的hash如下:

*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 

这个hash的特征是首位为*号,后面由大写字母和数字的组合公40位。

blowfish

Blowfish算法是一个64位分组及可变密钥长度的对称密钥分组密码算法,可用来加密64比特长度的字符串。我们最常见的是使用php对密码进行hash操作,字符串‘admin’经过Blowfish算法加密后的结果如下:

salt:mynameismyh0stthisistest

$2a$07$mynameismyh0stthisisteObpeGOQX6ayyzilPpLnt3/Ia5YhnZUG

加密方式

<?php
    crypt('admin', '$2a$07$mynameismyh0stthisistest$') 
?>

对比hash以及salt,可以看出来,hash的前29位是可以知道的,剩下的31位是经过加密后生成的。

Joomla

Joomla!是一套全球知名的内容管理系统,所以遇到它的加密hash的情况比较多,而且对于不同的版本有不同的加密方式,下面就一一介绍:

1.密码长度为65位的中间存在':'的 一般都是md5的加密

加密函数如下:

md5($password.$salt);

字符串’admin‘经过加密后的结果如下:

$salt = ’1myh0stmyh0stmyh0stmyh0stmyh0st1‘

ed123ac774848c80369a71c9d3fc2348:1myh0stmyh0stmyh0stmyh0stmyh0st1

2.如果密码长60位 前面是“$2y$”类似这种字符开头的话 使用的是 crypt() 的加密方式

加密函数如下:

password_hash($password, PASSWORD_BCRYPT);

字符串’admin‘经过加密后的结果如下:

$2y$10$/CpTcHb.CwuUvKXHMjn.U.miYQlhT5aFTOoR5v7C53mCeURF8BQNC

VBulletin

vBulletin 是世界上用户非常广泛的PHP论坛,很多大型论坛都选择vBulletin作为自己的社区。vBulletin的加密方式是:

md5(md5($pass).$salt)

字符串’admin‘经过加密之后的密码hash如下:

$salt=myh0st

2c995e56751e249db3d8a92a0ce06b87:myh0st

国内的Discuz!论坛也采用的是这样的加密方式。

phpBB3

PhpBB3是一个基于Apache,MySql的PHP论坛程序,应用也比较广泛,字符串‘admin123’经过phpBB3的最想念版加密方式加密后的hash如下:

$2y$10$/ulvVKVLAmnnHTmgGoU6v.spv8zcXHda1Ip6o4ey1a1Zh/ileVibC

如果获取到hash?我是新安装了了一个phpBB3的程序,从数据库里查出来的。对于不同版本的phpbb有不同的加密方式,下图中所有加密方式,都是phpbb曾经用过的,不同的版本hash有不一样的特征,需要一个一个的测试,有兴趣的小伙伴可以挨着测试一下。

Wordpress

Wordpress大家都很熟悉了,是一款知名的博客程序,字符串‘admin’经过Wordpress的加密方式加密后的结果如下:

$P$Ba6iDBlMOmFPodK5crh011brnHCYBi0

从上面的hash可以看出Wordpress的加密后的特征是hash前面是以$P$开头的。

Drupal

Drupal是全球三大开源内容管理系统之一CMS,字符串‘admin’经过最新版Drupal的加密方式加密后的结果如下:

$S$Eob5FLkSlZTiyFVGT1eNN6KgtJvr0wuJcdI7Knz/3SxRYQ0ytlVi 

这是最新版8.3.7生成的hash,从上面可以看出hash特征是以$S$开头,后面有52为的字符串。

sha512crypt, SHA512(Unix)

这个加密方式在unix下对用户密码的hash方式,字符串‘admin’经过hash之后的密文如下:

$6$B.x74T.A$/t1xvomJK/ibsSdm3Ud991bq/4iK.Ci5ApAUbxsSgBz8Un2AnDGQJg3YMLCCHGig16a8hB0CD7WUtllf8KgwZ.

从上面的hash可以看出,这类hash是以$6$开头的,中间有八位的salt,后面22位是加密后的字符串。

除了以上的hash类型,还有很多其他各种各样的hash,破解工具推荐hashcat,具体可以参见之前的文章《密码破解那些事 》

在处理密码字典时常用命令

在进行破解操作时,密码字典是非常重要的,通常密码字典是非常大的,如何对密码字典进行去重、统计操作是非常关键的,用到的工具是sort、uniq,这是linux下的小工具,也可以从cygwin下分离出这两个exe版的小工具拿来使用。

常用命令解释

sort pass.txt | uniq -c > temp.txt

在得到一个密码字典之后,我们可以利用上面的命令对密码文件进行排序去重统计重复次数

sort -r -k 1 temp.txt > temp2.txt

上面命令是对已经去重统计出来的文件进行二次排序,使出现次数最多的密码排到前面,这样可以了解用户的密码习惯,哪些密码是最常见的,然后针对性的可以统计出一些常用的弱口令。

小总结

在分析大的密码字典的时候,这两个命令是经常用的,大家可以结合我之前写的文章关于密码字典那些事,使用Python或者其他工具,分析字典,然后处理字典,针对不同的目标,获取不同的专用字典,可以大大的提高成功率。

总结

今天又给大家带来了一篇水文,因为每天都想给大家分享一点东西,质量上当然也不可能每一个都非常的干,所以能学到就学,学不到就当没看见,感谢大家的不离不弃,我会加油给大家带来更好的文章。

1.抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类可以包含抽象方法和非抽象方法,抽象方法没有具体的实现代码,需要在子类中实现。抽象类可以用来定义一个通用的模板,子类必须实现其中的抽象方法来完成具体的功能。 接口是一种纯粹的抽象类型,它只包含抽象方法和常量字段。接口定义了一组规范,实现该接口的类必须实现接口中定义的所有方法。接口可以被多个类同时实现,实现接口的类可以认为是具有某种特定行为或功能的类型。 2.ArrayList和LinkedList都是Java中的集合类,但它们在内部实现和使用上有所不同。 ArrayList是基于动态数组实现的,它可以自动扩容。它通过一个数组来保存元素,当数组容量不足时,会自动创建一个更大的数组,并将原有元素复制过去。ArrayList适合随机访问和遍历操作,但插入和删除元素的性能较低。 LinkedList是基于双向链表实现的,它没有容量限制。它通过链表节点来保存元素,每个节点都有指向前一个节点和后一个节点的引用。LinkedList适合频繁的插入和删除操作,但随机访问和遍历操作的性能较低。 3.HashMap是基于哈希表实现的,它使用键值对存储数据。在HashMap的底层,使用一个数组来保存Entry对象,每个Entry对象包含一个键和一个值。当插入元素时,通过计算键的哈希值来确定存储位置,如果发生哈希冲突,即多个键具有相同的哈希值,会使用链表或红黑树来解决冲突。 HashMap通过将键的哈希值高位和低位进行异或运算,来减少哈希冲突的概率。当链表长度超过8时,链表会转换为红黑树来提高查找效率。负载因子是指哈希表中已存储元素的数量与数组容量的比值,默认为0.75。当负载因子超过阈值时,会触发扩容操作。 4.HashSet的底层数据结构是基于HashMap实现的。HashSet通过HashMap的键来保存元素,而值则设置为一个固定的对象。HashSet利用了HashMap的去重特性,可以快速判断元素是否存在。当向HashSet中插入元素时,实际上是将元素作为HashMap的键插入,而值则是一个固定的对象。这样可以保证HashSet中不会有重复元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值