『壹』 我有一八位纯数字的密码压缩包,密码忘了用什么软件可以解开
WINRAR压缩文件的破解
针对WINRAR压缩文件,Elcomsoft公司也推出了“Advanced
RAR
Password
Recovery”,该软件解密速度很快,可以帮你找回
RAR文件
的密码,注册后可以解开多达128位密码。它提供有预估算出密码所需要的时间;可中断计算与恢复继续前次的计算。然而到黑客手里也就变成了一个破解的工具,其具体使用方法与“Advanced
ZIP
Password
Recovery”大致相同,这里不多介绍了。
3.
当心“多功能密码
破解软件
”作祟
此外,目前还有一款名为“多功能密码破解软件”的工具值得大家注意,也是黑客经常使用的。该软件可以破解Access97/2000/xp密码,Word/Excel97/2000/xp、QQ(本地和在线)、
SQLSERVER
(本地和远程)、
windows98
登陆密码、ZIP/RAR文件密码,星号密码察看,可以察看任何显示为*的密码内容(网页除外)。ZIP/RAR文件密码也难逃该软件一“劫”!下面看看黑客到底是如何利用这个工具兴风作浪的。
黑客安装并运行该软件,切换到“ZIP/RAR”选项
点击“浏览”按钮找到本地硬盘上要破解的ZIP/RAR文件,然后需要进行以下的设置:
(1)“破解位数设置”:你可以设置好密码最小长度和密码最大长度。
(2)“破解字符设置”:你可以选择是用数字、
小写字母
、
大写字母
中一个或者多个,这需要根据设置的压缩包的密码来进行选择,当然,如果都选的话,那么破解的速度肯定更慢,花费的时间也更长。
设置完毕后,点击“开始”按钮即可进行破解,经过一段时间的破解后,最后在“进度”框中显示破解的密码,
三、巧妙设置,让压缩文件无懈可击
除了用来压缩文件,我们还常常把WinRAR、WINZIP当作一个
加密软件
来使用,在压缩文件的时候设置一个密码就可以达到保护数据的目的了。正因为如此,专门针对压缩文件密码的破解软件也是遍地开花。密码的长短对于现在的破解软件来说,已经不是最大的障碍了。那么,怎样才可以让压缩加密的文件牢不可破呢?
除了做好日常的
安全防范工作
外,我们还要巧妙进行以下设置:
现在的破解软件在破解加密文件密码的时候总要指定一个Encrypted
File(目标文件),然后根据字典使用
穷举法
来破解密码。但是如果我们将多个需要加密的
文件压缩
在一起,然后为每一个文件设置不同的密码,那破解软件就无可奈何了,具体操作如下:
1.按照常规的方法把它压缩并且设置一个密码;
2.准备一个其他文件(当然这个文件小一点最好了,因为我们只是利用它来迷惑破解软件而已);
3.在WinRAR的工作窗口中打开我们第一步已经压缩好的加密文件,在“命令”菜单中选择“添加文件到压缩包”菜单选项
4.在弹出的“请选择要添加的文件”对话框中选择我们准备的“其他文件”,点击“确定”按钮后回到“压缩文件名字和参数”对话框;
5.在“高级”
选项卡
标签中点击“设置密码”按钮设置一个不同的密码,然后开始压缩即可
经过以上步骤,现在两个密码已经设置完成了(如果添加了多个文件,也可以给每个文件设置不同的密码,如果你担心自己会忘记,只设两个密码也可以达到目的)。打开压缩文件可以看到每一个文件名的右上角都有一个表示加密的星号,但是打开其中不同的文件都需要相对应的密码,使用破解软件是得不到正确密码的。这种方法对用WinZip加密的文件同样可以用。
『贰』 怎么对已经加密压缩文件进行解密
1、首先,在电脑上下载并安装RAR解密软件工具,在打开的软件工具中选择加密的rar文档,并设置好内下图中容的参数,之后点击开始按钮。
『叁』 谁能提供一个java的纯数字加密的方法,要从8位变为16位,生成的加密数据要看起来没有规律
public class DesUtil {
/** 字符串默认键值 */
private static String strDefaultKey = "national";
/** 加密工具 */
private Cipher encryptCipher = null;
/** 解密工具 */
private Cipher decryptCipher = null;
/**
* 将byte数组转换为表示16进制值的字符串, 如:byte[]{8,18}转换为:0813, 和public static byte[]
* hexStr2ByteArr(String strIn) 互为可逆的转换过程
*
* @param arrB
* 需要转换的byte数组
* @return 转换后的字符串
* @throws Exception
* 本方法不处理任何异常,所有异常全部抛出
*/
public static String byteArr2HexStr(byte[] arrB) throws Exception {
int iLen = arrB.length;
// 每个byte用两个字符才能表示,所以字符串的长度是数组长度的两倍
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = arrB[i];
// 把负数转换为正数
while (intTmp < 0) {
intTmp = intTmp + 256;
}
// 小于0F的数需要在前面补0
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}
/**
* 将表示16进制值的字符串转换为byte数组, 和public static String byteArr2HexStr(byte[] arrB)
* 互为可逆的转换过程
*
* @param strIn
* 需要转换的字符串
* @return 转换后的byte数组
* @throws Exception
* 本方法不处理任何异常,所有异常全部抛出
* @author <a href="mailto:[email protected]">LiGuoQing</a>
*/
public static byte[] hexStr2ByteArr(String strIn) throws Exception {
byte[] arrB = strIn.getBytes();
int iLen = arrB.length;
// 两个字符表示一个字节,所以字节数组长度是字符串长度除以2
byte[] arrOut = new byte[iLen / 2];
for (int i = 0; i < iLen; i = i + 2) {
String strTmp = new String(arrB, i, 2);
arrOut[i / 2] = (byte) Integer.parseInt(strTmp, 16);
}
return arrOut;
}
/**
* 默认构造方法,使用默认密钥
*
* @throws Exception
*/
public DesUtil() throws Exception {
this(strDefaultKey);
}
/**
* 指定密钥构造方法
*
* @param strKey
* 指定的密钥
* @throws Exception
*/
public DesUtil(String strKey) throws Exception {
Security.addProvider(new com.sun.crypto.provider.SunJCE());
Key key = getKey(strKey.getBytes());
encryptCipher = Cipher.getInstance("DES");
encryptCipher.init(Cipher.ENCRYPT_MODE, key);
decryptCipher = Cipher.getInstance("DES");
decryptCipher.init(Cipher.DECRYPT_MODE, key);
}
/**
* 加密字节数组
*
* @param arrB
* 需加密的字节数组
* @return 加密后的字节数组
* @throws Exception
*/
public byte[] encrypt(byte[] arrB) throws Exception {
return encryptCipher.doFinal(arrB);
}
/**
* 加密字符串
*
* @param strIn
* 需加密的字符串
* @return 加密后的字符串
* @throws Exception
*/
public String encrypt(String strIn) throws Exception {
return byteArr2HexStr(encrypt(strIn.getBytes()));
}
/**
* 解密字节数组
*
* @param arrB
* 需解密的字节数组
* @return 解密后的字节数组
* @throws Exception
*/
public byte[] decrypt(byte[] arrB) throws Exception {
return decryptCipher.doFinal(arrB);
}
/**
* 解密字符串
*
* @param strIn
* 需解密的字符串
* @return 解密后的字符串
* @throws Exception
*/
public String decrypt(String strIn) throws Exception {
return new String(decrypt(hexStr2ByteArr(strIn)));
}
/**
* 从指定字符串生成密钥,密钥所需的字节数组长度为8位 不足8位时后面补0,超出8位只取前8位
*
* @param arrBTmp
* 构成该字符串的字节数组
* @return 生成的密钥
* @throws java.lang.Exception
*/
private Key getKey(byte[] arrBTmp) throws Exception {
// 创建一个空的8位字节数组(默认值为0)
byte[] arrB = new byte[8];
// 将原始字节数组转换为8位
for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
arrB[i] = arrBTmp[i];
}
// 生成密钥
Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
return key;
}
/**
* main方法 。
*
* @author 刘尧兴
* @param args
*/
public static void main(String[] args) {
try {
String test = "asc";
DesUtil des = new DesUtil("abc");// 自定义密钥
// System.out.println("加密前的字符:" + test);
// System.out.println("加密后的字符:" + des.encrypt(test));
// System.out.println("解密后的字符:" + des.decrypt(des.encrypt(test)));
} catch (Exception e) {
e.printStackTrace();
}
}
}
『肆』 密文是8位的怎么解
如果是定长的都是8位的话,这里就可能是一种单向加密的方式,而就是说,只存在从明文向密文进行的一个加密过程,不存在一个由密文向明文的解密过程,这种单向加密又称非可逆性加密,多用于校检式对比.校验显然不须要知道明文就可以了,所以采用的是单向加密,比较代表性的就是MD5,SHA-1等算法.
因为明文一般是4-16位,而加密后的密文只有8位,若是一个双向加密,显然明文长度大于罩友密文长度,这里其实是说,明文的容量大于密文的容量,不管是那种加密算法,都会造成大量的"碰撞"!而一个双向加密算法的好坏,碰撞机率是一个非常重要的因素的!显然,若是只有8位时,只能说是一个不太好的校验方式算法,也就是单向算法的.所谓的碰撞就是指的有两个不同的明文会得到相同的密文,那么这两个明文就发生了碰撞.这个机率越大,则算法的可行性越差!
而若是单向校验,也就是单向加密,这里虽然碰撞机率大,但可团桐以用程序去做一下控制的!比如你输入三次密码如果校验不成功,则将帐户进行封冻等都是较好的手段!而双向加密,别人可以直接进行算法测试,不会依赖于程序,则很容易破解的.这与密码设计的初衷是背离的.
如果是8位定长,也就是说不管你是多少位密码,这极可能是MD5加密或是MD5的前身MD4与MD2加密.也可能是程序设计者自己设计的算法!但绝对是一个单向加密的!
MD5你可能见过16位的和32位或者更多的.其实你看一下其中的具体实现就知道了,他是四组值进行运算的,最终这四组若是b+c(第二组与第三组组合)就是MD5的16位算法.若是a+b+c+d四组全组合时就是32位的算法.但如果系统对于密码强度大小不是很大时,为了省却计算机的运算时间,完全可以只有用其中四组中的一组,也就是所能看到的8位的.这种塌闷坦算法是MD5,但只取的是其中的一组值的.而MD2与MD4恰恰就是与此类似的!因为安全性不强的缘故,现在已经很少或是没有地方使用了!至少现在的系统中我还没有看到过.
『伍』 加密解密工具:普莱费尔密码
普莱费尔密码(英文:Playfair Cipher 或 Playfair Square)是一种使用一个关键词方格来加密字符对的加密法,1854年由一位名叫查尔斯·惠斯通(Charles Wheatstone)的英国人发明。
简介
经莱昂·普莱费尔提倡在英国军地和政府使用。它有一些不太明显的特征:密文的字母数一定是偶数;任意两个慧培同组的字母都不会相同,如果出现这种字符必是乱码和虚码。
它使用方便而且可以让频度分析法变成瞎子,在1854到1855年的克里米亚战争和1899年的布尔战争中有广泛应用。但在1915年的一战中被破译了。
编写分三步:
1.编制密码表
2.整理明文
3.编写密文 构成部分:
1.密钥
2.明文
3.密文
4.注明的某个字母代替的另一个字母。
算法
它依据含纤一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。5*5的密码表,共有5行5列字母。第一列(或第一行)是密前老唯钥,其余按照字母顺序,如果密钥过长可占用第二列或行。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。当然也要把使用频率最少的字母去掉(它依据一个5*5的正方形组成的密码表来编写,密码表里排列有25个字母。如果一种语言字母超过25个,可以去掉使用频率最少的一个。如,法语一般去掉w或k,德语则是把i和j合起来当成一个字母看待,英语中z使用最少,可以去掉它)。
工具链接: http://www.atoolbox.net/Tool.php?Id=912
『陆』 md5解密器如何使用
md5密码在线查询器
V1.1
文件大小:16KB
更新时间:2006-7-11
下载次数:809次
星级:
★★★
如果输入明文,则自动转换成md5密文。如果输入md5密文,则同时到三个国内外知名md5在线查询网站查询原文。
现在md5破解不需要使用软件进行穷举了,穷举很简单的还可以,一旦穷举超过8为数字或者超过5位小写字母,那么需要的时间可能就是数天了。而且这一段时间计迅腔算机资源几乎都要被它占用。
现在md5破解只需要到网站在线查询即可改昌帆。有不少网站都提供了在线查询,它们已经收集起大量的MD5密码,已经远远超过你能用软件穷举的了。如果在线查询网站查询不到,那么用软件破解的希望基本核雹不存在了。
目前国内最大的md5在线查询破解网站是http://www.cmd5.com,它能查询以下组合:全部10位及以下纯数字全...
软件分类:密码管理
操作系统:Windows
2000/XP/2003
授权方式:共享版