using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace 雷神之锤暴力压缩算法
{public partial class Form1 : Form{public Form1(){InitializeComponent();}byte[] info = new byte[] { 0xAB, 0x05, 0x09, 0x15, 0x00, 0x0F };//1.首先1个字节变成两个字节,使得两个字节之和是byte[i],并且满足位置的奇数偶数,还要满足校验和,条件是先把倒数第三个字节转换为二进制,1是奇数,2是偶数string er = "";private void Form1_Load(object sender, EventArgs e){loadPrime();//初始化质数表er = Convert.ToString(info[info.Length - 3], 2);if (er.Length < (info.Length - 3) * 2){for (int i = 0; i < (info.Length - 3) * 2 - er.Length; i++){er = "0" + er; // er[]长度= 原始密文的长度-3)*2=6,如果长度不够,前面补0}}for (int m = 0; m < info.Length - 3; m++){textBox1.Text += info[m] + " GO...\r\n";for (int x = 0; x < 16; x++){for (int y = 0; y < 16; y++){//0 0if (x + y == info[m]){for (int z = m * 2; z < er.Length - 1; z++){int tmp=int.Parse(er[z].ToString());int yu=x%2;if (tmp==yu)if (y % 2 == int.Parse(er[z + 1].ToString()))textBox1.Text += "x=" + x + ",y=" + y + "\r\n";break;}}if (x * y == info[m]){//注意奇数是没有办法拆分为整数乘除,如果info[m]是一个质数,那么根据欧几里得原理,计算量就变小了//X+Y=INFO[M] 并且INFO[M]属于质数//那X=1,Y=INFO[M]-1 或者 Y=1,X=INFO[M]-1textBox2.Text += "x=" + x + ",y=" + y + "\r\n";}}}}}Dictionary<int, int> prs = new Dictionary<int, int>();private void loadPrime(){prs.Add(2, 0);prs.Add(3, 0);prs.Add(5, 0);prs.Add(7, 0);prs.Add(11, 0);prs.Add(13, 0);prs.Add(17, 0);prs.Add(19, 0);prs.Add(23, 0);prs.Add(29, 0);prs.Add(31, 0);prs.Add(37, 0);prs.Add(41, 0);prs.Add(43, 0);prs.Add(47, 0);prs.Add(53, 0);prs.Add(59, 0);prs.Add(61, 0);prs.Add(67, 0);prs.Add(71, 0);prs.Add(73, 0);prs.Add(79, 0);prs.Add(83, 0);prs.Add(89, 0);prs.Add(97, 0);prs.Add(101, 0);prs.Add(103, 0);prs.Add(107, 0);prs.Add(109, 0);prs.Add(113, 0);prs.Add(127, 0);prs.Add(131, 0);prs.Add(137, 0);prs.Add(139, 0);prs.Add(149, 0);prs.Add(151, 0);prs.Add(157, 0);prs.Add(163, 0);prs.Add(167, 0);prs.Add(173, 0);prs.Add(179, 0);prs.Add(181, 0);prs.Add(191, 0);prs.Add(193, 0);prs.Add(197, 0);prs.Add(199, 0);prs.Add(211, 0);prs.Add(223, 0);prs.Add(227, 0);prs.Add(229, 0);prs.Add(233, 0);prs.Add(239, 0);prs.Add(241, 0);prs.Add(251, 0);}List<string> cache = new List<string>();List<byte[]> cacheint = new List<byte[]>();private void five(List<string> info){for (int i = 0; i < info.Count; i++){ for (int j = 0; j < info.Count; j++){for (int k = 0; k < info.Count; k++){//for (int x = 0; x < info.Count; x++)//{byte[] hex = new byte[3];hex[0] = Convert.ToByte(info[i], 16);hex[1] = Convert.ToByte(info[j], 16);hex[2] = Convert.ToByte(info[k], 16);//hex[3] = Convert.ToByte(info[x], 16);cacheint.Add(hex);//}}}}textBox2.Text = "ok";}private void four(){string[] info = new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };List<string> all=new List<string>();for (int i = 0; i < info.Length; i++){for (int j = 0; j < info.Length; j++){all.Add(info[i]+info[j]);}}five(all);textBox2.Text = "ok";}private void back(List<string> info){for (int i = 0; i < info.Count; i++){for (int j = 0; j < info.Count; j++){for (int k = 0; k < info.Count; k++){for (int x = 0; x < info.Count; x++){for (int y = 0; y < info.Count; y++){for (int z = 0; z < info.Count; z++){for (int a = 0; a < info.Count; a++){for (int b = 0; b < info.Count; b++){byte[] hex = new byte[] { };byte hexb = Convert.ToByte(info[b], 16);//hex[0] = Convert.ToByte(info[i] + info[j], 16);//hex[1] = Convert.ToByte(info[k] + info[x], 16);//hex[2] = Convert.ToByte(info[y] + info[z], 16);//hex[2] = Convert.ToByte(info[a] + info[b], 16);cacheint.Add(hex);}}}}}}}}textBox2.Text = "ok";}}
}

此算法的好处是有很大概率将一串2进制数据压缩为更大的串

雷神之锤暴力压缩算法相关推荐

  1. GZIP中的LZ77压缩算法

    什么是LZ77压缩算法? ZIP中的LZ77思想 LZ77压缩和解压缩介绍 #ZIP: LZ77重复语句层面的压缩+huffman字节层面的压缩 #什么是LZ77压缩算法? 1977年由两个以色列人提 ...

  2. 关于zip包的一点小东西 暴力 字典 明文

    暴力破解.这是最花时间的一种破解方式,暴力破解就是不断的去尝试所有可能的密码.如果密码比较短,比较容易的找到破解密码. 字典攻击.优化过的暴力破解,它使用了一个字典文件,然后一一尝试文件中的每个密码. ...

  3. 雷神之锤 - 神一般存在的Sqrt函数

    转载: http://www.cnblogs.com/pkuoliver/archive/2010/10/06/1844725.html 我们平时经常会有一些数据运算的操作,需要调用sqrt,exp, ...

  4. Ubuntu下破暴力解压缩文件zip的密码

    用Ubuntu下的frackzip工具破解zip的密码,注意此处只能破解zip的密码,对于rar.7z等类型的压缩文件暂时不支持破解. 步骤如下: 1.右键Ubuntu桌面,打开终端 2.在终端中输入 ...

  5. 基于GZIP压缩算法的模拟实现

    ZIP压缩的历史 1977年,两位以色列人Jacob Ziv和Abraham Lempel,发表了一篇论文<A Universal Algorithm forSequential Data Co ...

  6. LZ77文件压缩算法

    LZ77压缩算法 1977由两个以色列人提出的基于重复语句层面的一种通用的压缩算法. 通用:对文件没有要求最终是将重复语句替换成更短的<长度,距离,先行缓冲区匹配字符串的下- -个字符>对 ...

  7. 喵哈哈村的魔法考试 Round #1 (Div.2) 题解源码(A.水+暴力,B.dp+栈)

    A.喵哈哈村的魔法石 发布时间: 2017年2月21日 20:05   最后更新: 2017年2月21日 20:06   时间限制: 1000ms   内存限制: 128M 描述 传说喵哈哈村有三种神 ...

  8. 哑谜,回文和暴力之美

    暴力搜索是一个有趣的东西.至少刘汝佳是这么认为的.编程之美的4.10节就是典型的暴力题.虽然作者将其难度定义为一颗星,但却不能因此认为这个类型的问题就是那么容易的,很多可能需要一些有创造力的想法. 不 ...

  9. Leetcode 15.三数之和 双指针 or 暴力哈希

    题目链接:传送门 题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组. 暴力+ ...

最新文章

  1. 华为10年经验测试工程师,整理出来的python自动化测试实战
  2. 15.QT布局管理及示例
  3. SD-SD用到的文本对象列表
  4. Python 中的匿名函数,你会用吗
  5. 应理解计算机专业的学科特点,职业高中计算机专业测验试题编写的策略初探.doc...
  6. 自动化运维python学习笔记一
  7. 25.docker commit
  8. vc2017 c语言运行,vc++2017下载|vc++2017运行库 32位64位 官方版 - 软件下载 - 绿茶软件园|33LC.com...
  9. 大学计算机基础word操作2018,大学计算机基础试题及答案2017
  10. Linux装股票交易系统,linux下的股票软件
  11. 联通loid认证_光纤LOID 认证 需要填写的用户名是什么?有人说不需要填写密码。为什么我每次认证都是超时?...
  12. 你有必要不沾计算机一段时间英语,八年级上册英语第一单元背默(人教版)
  13. 大数据创造智慧城市的未来之光!
  14. 爬虫笔记(二)——Beautiful Soup库
  15. 华为手机信息不弹屏了为什么_华为微信不弹出新消息提醒 怎么办
  16. Dev --gridView中CheckItem的多选设置
  17. python大学课程-Coursera上Python课程(公开课)汇总
  18. 领英大数据:经济寒冬,“全思维IT工程师”成企业新宠
  19. android -------- Hawk数据库
  20. 让enter键功能和Tab键一样

热门文章

  1. futex同步机制分析之三内核实现
  2. 桌面读卡器模拟光标输出文档
  3. Android图片适配分辨率,Android多分辨率适配总结
  4. HTML常用标签及跳转
  5. django多个html模板,django二、模板详解(templates)——页面视图
  6. vue+axios+echarts实现一个折线图
  7. BroadcastReceiver总结
  8. PADS Layout软件如何建立元器件PCB封装
  9. 如何在较新的mac上使用SAMSUNG SCX-4623打印机(或其他更古老的打印机)
  10. elasticsearch中文分词和拼音混合搜索