本文目录一览:
- 1、什么叫暴力算法?
- 2、求大神帮忙写一个暴力破解算法,c或Java都行,密码由数字和字母组成,最大密码长度10位最小一位?
- 3、bf算法是什么?
- 4、密码的暴力破解使用的是( )算法。 A.解析法 B.穷举法 C.分治法 D
- 5、什么是暴力破解,掩码破解,字典破解
什么叫暴力算法?
当前对于各种加密算法.除了有针对性的破解算法,最基本的思想就是穷举密钥进行匹配,通常称为暴力破解算法。由于暴力破解算法包含密钥个数较多,遍历的时间超过实际可接受的范围。如果计算速度提高到足够快。这种遍历的算法因结构设计简便而具有实际应用的前景。
求大神帮忙写一个暴力破解算法,c或Java都行,密码由数字和字母组成,最大密码长度10位最小一位?
import org.junit.Test;
public class T {
//最小长度
private int min = 1;
//最大长度
private int max = 10;
//准备数字,大小写
private char[] psw = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
@Test
public void t(){
for(int i=min; i=max; i++){
permutation(psw, i);
}
}
/**
* 全排列入口
* @param array 密码数据
* @param n 密码长度
*/
private void permutation(char[] array, int n) {
permutation("", array, n);
}
/**
*
* @param s 已生成临时字串
* @param array 密码数据
* @param n 剩余未生成的字符长度
*/
private void permutation(String s, char[] array, int n) {
if(n == 1) {
for(int i=0; iarray.length; i++) {
//这是密码结果
String result = s+array[i];
System.out.println(result);
}
} else {
for(int i=0; iarray.length; i++) {
permutation(s+array[i], array, n-1);
}
}
}
}
不过建议不要暴力,有针对性会好一点
bf算法是什么?
BF算法,即暴力(Brute Force)算法。
是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。
如果一个多位数并且包含以上所有可能字符的密码,其组合方法一定多的惊人,且每增加一位数,密码组合数量会以数十倍指数成长,破译的时间也会更长,有时可能长达数十年(即便考虑电脑性能依摩尔定律的进步),甚至更久。
由于穷举法破解所消耗的时间不小于完成破解所需要的多项式时间,故从密码学角度考虑,不认为穷举法是有效的破解方法。
字典攻击
破译一个相当长度并且包含各种可能字符的密码所耗费的时间相当长,其中一个解决办法就是运用字典。所谓“字典攻击”就是使用预先制作好的清单,例如:英文单字、生日的数字组合、以及各种常被使用的密码,等等,利用一般人习惯设置过短或过于简单的密码进行破译,很大程度上缩短了破译时间。
防护手段
最重要的手段是在构建系统时要将系统设计目标定为即便受到暴力破解的攻击也难以被攻破。以下列举了一些常用的防护手段:
1、增加密码的长度与复杂度。
2、在系统中限制密码尝试的次数。
3、密码验证时,将验证结果不是立即返回而是延时若干秒后返回。
4、限制允许发起请求的客户端的范围。
5、禁止密码输入频率过高的请求。
6、将密码设置为类似安全令牌那样每隔一定时间就发生变化的形式。
7、当同一来源的密码输入出错次数超过一定阈值,立即通过邮件或短信等方式通知系统管理员。
8、人为监视系统,确认有无异常的密码试错。
9、使用双因子认证,例如用户登录账号密码时,系统同时发送短信到用户的手机,用户需输入短信内的认证码。
密码的暴力破解使用的是( )算法。 A.解析法 B.穷举法 C.分治法 D
B
穷举法,或称为暴力破解法,是一种针对于密码的破译方法,即将密码进行逐个推算直到找出真正的密码为止。例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题只在于如何缩短试误时间。因此有些人运用计算机来增加效率,有些人辅以字典来缩小密码组合的范围。
什么是暴力破解,掩码破解,字典破解
暴力破解、字典破解都是用穷举法。这个方法很笨,但是破解率高。字典破解在使用不同的元素组合生成字典,然后用字典进行必要的破解。本人曾经忘记了某论坛上的密码,通过使用木头字典生成自己的密码字典,然后找回密码了。这个穷举算法用途挺广泛的。