C#通过n层循环进行字符组合实现暴力破解MD5

news/2024/11/15 7:04:10/

C#通过n层循环进行字符组合实现暴力破解MD5


自动根据待解密的MD5字符串长度,进行处理。

static class Program
{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){string[] plainArray = "0,1,2,3,4,5,6,7,8,9";	//可疑字符串string cipherStr = "202CB962AC59075B964B07152D234B70";	// 待解密MD5字符串,32位//string cipherStr = "AC59075B964B0715";	// 待解密MD5字符串,16位int n = 6;	// 明文长度bool isDecried = false;string plainStr = MD5Decrypt(plainArray, n, cipherStr, ref isDecried);if (isDecried){Console.WriteLine(plainStr);}else{Console.WriteLine("解密失败,明文不在可疑明文字符组合中!");}}/// <summary>/// MD5解密/// </summary>/// <param name="plainArray">可疑明文字符数组</param>/// <param name="n">明文长度</param>/// <param name="cipherStr">待解密的密文</param>/// <param name="isDecried">是否已完成解密</param>/// <returns>解密后的明文</returns>private string MD5Decrypt(string[] plainArray, int n, string cipherStr, ref bool isDecried){List<string[]> list = new List<string[]>();for (int i = 0; i < n; i++){list.Add(plainArray);}string plainStr = "";MD5 md5 = MD5.Create();MD5Combination(0, list, md5, cipherStr, "", ref plainStr, ref isDecried);return plainStr;}/// <summary>/// MD5解密(迭代实现 N 层字符组合,对组合字符串进行MD5后和密文进行比对)/// </summary>/// <param name="index">N层明文字符串集合的索引</param>/// <param name="matrix">N层明文字符串集合</param>/// <param name="md5">MD5对象,避免重复创建对象导致内存溢出</param>/// <param name="cipherStr">待解密的密文</param>/// <param name="str">组合字符串</param>/// <param name="plainStr">解密后的明文</param>/// <param name="isDecried">是否已完成解密</param>private void MD5Combination(int index, List<string[]> matrix, MD5 md5, string cipherStr, string str, ref string plainStr, ref bool isDecried){for (int k = 0; k < matrix[index].Length; ++k){if (isDecried){return;}string charStr = matrix[index][k];String tempStr = str + charStr;string encryStr = "";switch (cipherStr.Length){case 16:encryStr = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(tempStr)), 4, 8).Replace("-", "");break;case 32:encryStr = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(tempStr))).Replace("-", "");break;}if (encryStr == cipherStr || encryStr.ToLower() == cipherStr){plainStr = tempStr;isDecried = true;return;}else if (index < matrix.Count - 1){MD5Combination(index + 1, matrix, md5, cipherStr, tempStr, ref plainStr, ref isDecried); // 向下传递的逻辑}}return;}
}

http://www.ppmy.cn/news/731191.html

相关文章

rng(‘default‘)

产生伪随机数有一个种子&#xff0c;所谓的伪随机就是指有一定“规律”&#xff0c;而这个种子就是这个“规律”。 rng(‘default’)就是用默认种子。不写也是一样的&#xff0c;只要你没改变过种子&#xff0c;matlab刚打开默认就是种子0 默认种子是0&#xff0c;但不代表每次…

在线教育直播平台哪个比较好

凭借线上技术提供的更为精细化的教学服务&#xff0c;在线教育机构除了在自建直播平台之外&#xff0c;也能借助第三方教学直播平台来完成职业教育和素质教育等机构的线上转型。 第三方教学直播平台主要分为流量型和工具型的平台。 第一&#xff0c;流量型教学直播平台。这类平…

AI预测RNG为S12冠军 /富士康欲为特斯拉造车 /周星驰招web3人才...今日更多新鲜事在此...

日报君 发自 凹非寺量子位 | 公众号 QbitAI 大家好&#xff01;今天是周三&#xff01; 最近天气越来越冷&#xff0c;出门前别忘多穿点。 那么&#xff0c;今天科技圈有什么值得关注的事儿&#xff1f; 日报君为你奉上。 富士康欲为特斯拉造车 10月18日&#xff0c;富士康背后…

编码器如何推流给虎牙直播平台

本文链接: https://blog.csdn.net/weixin_45326556/article/details/106333590 编码器如何推流给虎牙直播平台 1. 概要2. 登录虎牙直播平台3. 下载电脑开播工具4. 选择第三方推流5. 立即开播6. 获取直播码7. 填写推流URL8. 推流成功 1. 概要 虎牙直播平台支持第三方推流&…

虎牙继续统治游戏直播市场 RNG夺冠引4400万观看

5月20日&#xff0c;伴随着一声“恭喜RNG”&#xff0c;来自中国LPL赛区的RNG战队以3比1的比分战胜了韩国LCK赛区的KZ战队&#xff0c;获得了本次英雄联盟季中冠军赛的世界冠军。而UZI的签约直播平台虎牙更以近4400万的观看破记录。 这是时隔三年&#xff0c;中国LPL战队再次夺…

企业年会直播选择哪个什么平台

近几年&#xff0c;随着移动互联网的普及&#xff0c;网络直播也越来越受欢迎。将近年关&#xff0c;很多企业也愿意以直播的形式来办一场企业年会。年会直播&#xff0c;一方面可以宣扬企业文化&#xff0c;让全网络观众可以共同参与&#xff0c;见证公司这一年的成绩以及员工…

透视虎牙斗鱼三季报:游戏直播在各自“求变”中见分晓

游戏直播行业&#xff0c;依然硝烟弥漫。 经历千播大战、熊猫出局的洗礼后&#xff0c;虎牙和斗鱼双方缠斗升级&#xff0c;另有B站和抖音、快手等视频平台来势汹汹&#xff0c;抢夺仅有的市场蛋糕。 而在游戏行业遇冷、政策趋严等因素多重考验下&#xff0c;这场争夺战无疑将…

虎牙财报奏响游戏直播艰难进行曲

今年年初新冠疫情爆发&#xff0c;实体经济企业全面停摆&#xff0c;企业职工纷纷休业宅家&#xff0c;带动“宅经济”的发展&#xff0c;直播、视频、电商平台成为受益者。 虎牙作为国内领先的游戏直播平台之一&#xff0c;也成为这场“宅经济”的受益者。 近日&#xff0c;…