打败所有黑客 Beat All Hackers 加密算法 Encrypt

打败所有黑客 Beat All Hackers

【欢迎转载或翻译该文】

现在上网,难免会涉及一些需要保密的内容,比如密码,账号,卡号,证件号等。但是黑客无处不在,他们常常窃听你的信息,给你放置陷阱,让你的防不胜防。

 

比如我现在要将信息“账号:123456,密码:567890 A经过B传递到C,黑客可能从中间环节B截取你传输的信息。我们日常交换的信息量是很大的,黑客怎么知道现在传输的就是“密码”或“账号”呢?那么他就会设定关键词,比如“密码”,凡是含有该关键词的信息都会被截获,而其他信息就会被放掉。

 

你可能会讲,你传输的信息都是通过加密的,对!这就是关键的地方,现在已经有很多加密算法,他们将我们传输的数据进行加密,但是请注意,既然可以加密就可以解密,你可能从网络上早已了解到,很多加密算法是如何的厉害,一台PC要暴利破解要多少年!可是你忽略了,黑客可能比你的计算机好,他也可能控制肉鸡帮他计算,他破解的速度可能远远超出你的想象。

同时,你必须注意,现在很多加密算法,加密部分都是掌握在别人手上,比如你通过及时通讯或email将信息传递给你的朋友,一般加密都是掌握在即时通讯提供方,和email提供方,如果被黑客利用,你的信息将视同于没有加密。或者黑客可以对其陷阱预设解密方法和密钥,一旦检测到就进行解密。所以你最好自己对信息加密!

现在问题是,黑客对你信息不能解密的放过,能够解密的再留下破解。你的信息仍然处于危险之中。于是有了我现在所说的这种加密方法,非函数不校检的加密方法。

加密思想:

原始文本:1234567890

密钥:123

首先如果密钥第一位为1,则将原始明文,逐位交换变成2143658709.

其次如果密钥第二位为2,则继续进行两两交换,变成4321876509

再次如果密钥第三位为3,则继续三三交换,变成1874326509

 

 

密钥是什么可以自己限定,交换方式也可以自己设定,你可以逐位交换,也可以跳转交换,也可以按密文所在位的值进行交换。主要思想就是,乱序。那么所有排列的数量就与你原始明文的长度密切相关,比如10位,所有可能就是P10的全排列。不同密码,可能加密出同样的结果。但是如果把一个字符按64位或256位处理,短短的10位字符,已经不再只有P10的全排列个结果。

关键点:不管你的计算机有多快,你每次只能解密一次!而且计算机不会告诉你是否解密正确,必须要你自己判断!即使黑客知道怎么解密也不好下手,即使他们做出所有的排列,也必须一个一个去判断哪一个正确。这是任何一个黑客都无法忍受的!而且排序很耗资源,即使其自定义一些检测方法也于事无补。

先看个例子:

原始明文“天上密密麻麻布满乌云,码头上的船也整整齐齐的排列在一起,等待暴风雨的来临!”

密码:235312336232

结果:“上密码天密麻满乌船的云布上暴列头风,齐齐,起麻整一的的在等排雨也来待整临!”

 

全句含标点37个字符,两个“密”一个“码”,现在只考虑一个“密”跟“码”结合组合成“密码”关键词,而且只考虑排在句首,那么组合形式就达P35的全排列。如果我们将这句话乱序发出,至少有P35/P37的概率触发黑客的“密码”关键词陷阱。打个比方就是,猎人在一条道上放了陷阱,凡是靠近地面行走的动物才会触发机关,现在是风吹一下就会触发机关。无穷的信息量将使黑客的陷阱充满无用信息,让其降低真正窃密的几率!

 

迫切性,大家都在说云计算时代来了,软件不用装了,海量信息可以存储到服务器上,走到哪里就在那里提取,但是你能保证你在服务器上的信息不泄露吗?怎么办?我的建议是,利用上面的加密思想进行加密,任何人想要暴利破解都不行,而你只需要输入密码,很快就可以确定那就是你的原始信息!

 

1,  自己编译软件:首先如果你可以自己根据代码设置自己的算法(改变交换位置即可)和密码,然后自己编译成软件,那么加密方法就是你一个人独有的。

2, 添加浏览器插件:也可以为你的IEMaxthonfirefoxopera等浏览器或其他工具添加插件。

这样你可以在发email或者写网上日志时使用。比如你想记录自己的日常生活,记在自己电脑上怕遗失,记在网上又怕被黑客攻击而泄露,所以这时你需要这个简单有效的加密方式,不增加内容的长度,看上去也跟别的日志没有区别,要看的时候,自己输入密码看就是,如果是IE等浏览器有插件设置好的话,还可以免去这些繁复的操作,自动加密和解密!

 

你的空间或博客可能设置有密码,如果你再通过这种方式对你写的日记加密,即使别人破解了你的空间密码,或博客出现漏洞,你的信息也不会被泄露。该方法也可以对文件和图片进行加密,比如图片,可以按照一个一个像素的交换,这样加密的图片是很难破解的,但是你根据你的密码可以轻松的还原。防止你的秘密相册被偷看。

这个当然也可以用于其他信息加密,比如声音加密,防止非法窃听!比如:语音有三个字“我爱你” 通过这种方式加密,可以变成“你爱我”。到底那个是正确的呢?一旦变长语句,你将无法得知,如果将音频数字化,更可以很好的保密。

C#编程外行,可能用的很不科学,特别是容错机制,但基本思想已经表达,代码还有很多bug,有建议的请跟帖到:sosecretblog.blogspot.com

 

利用该方法加密,然后再结合其他加密方式,比如AESDES等,可以有效的保证你的数据安全!

 

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace NumberAntiHack
  10. {
  11.     public partial class Form1 : Form
  12.     {
  13.         public Form1()
  14.         {
  15.             InitializeComponent();
  16.         }
  17.         //----------Enumber Start-----------
  18. #region estring1-------
  19.         //-----estring1-------------
  20.         private string estring1(string origin)
  21.         {
  22.             try
  23.             {
  24.                 char[] ori = origin.ToCharArray();
  25.                 int len = ori.Length;
  26.                 char[] after = new char[len];
  27.                 //-----COPY ori to after
  28.                 for (int i = 0; i < len; i++)
  29.                 {
  30.                     after[i] = ori[i];
  31.                 }
  32.                 //---transfer 1 by 1
  33.                 for (int i = 1; i <= (len / 2); i++)
  34.                 {
  35.                     int j = i * 2;
  36.                     after[j - 2] = ori[j - 1];
  37.                     after[j - 1] = ori[j - 2];
  38.                 }
  39.                 string last = new string(after);
  40.                 return last;
  41.             }
  42.             catch
  43.             { return origin; }
  44.         }
  45.         //-----estring1-------end----------
  46. #endregion
  47. #region estring2-------
  48.         //-----estring2-------------
  49.         private string estring2(string origin)
  50.         {
  51.             try
  52.             {
  53.                 char[] ori = origin.ToCharArray();
  54.                 int len = ori.Length;
  55.                 char[] after = new char[len];
  56.                 for (int i = 0; i < len; i++)
  57.                 {
  58.                     after[i] = ori[i];
  59.                 }
  60.                 //---transfer 2 by 2
  61.                 for (int i = 1; i <= (len / 4); i++)
  62.                 {
  63.                     int j = i * 4;
  64.                     after[j - 2] = ori[j - 4];
  65.                     after[j - 1] = ori[j - 3];
  66.                     after[j - 4] = ori[j - 2];
  67.                     after[j - 3] = ori[j - 1];
  68.                 }
  69.                 string last = new string(after);
  70.                 return last;
  71.             }
  72.             catch
  73.             { return origin; }
  74.         }
  75.         //-----estring2-------end----------
  76.         #endregion
  77. #region estring3-------
  78.         //-----estring3-------------
  79.         private string estring3(string origin)
  80.         {
  81.             try
  82.             {
  83.                 char[] ori = origin.ToCharArray();
  84.                 int len = ori.Length;
  85.                 char[] after = new char[len];
  86.                 for (int i = 0; i < len; i++)
  87.                 {
  88.                     after[i] = ori[i];
  89.                 }
  90. //transfer 3 by 3
  91.                 for (int i = 1; i <= (len / 6); i++)
  92.                 {
  93.                     int j = i * 6;
  94.                     after[j - 6] = ori[j - 3];
  95.                     after[j - 5] = ori[j - 2];
  96.                     after[j - 4] = ori[j - 1];
  97.                     after[j - 3] = ori[j - 6];
  98.                     after[j - 2] = ori[j - 5];
  99.                     after[j - 1] = ori[j - 4];
  100.                 }
  101.                 string last = new string(after);
  102.                 return last;
  103.             }
  104.             catch
  105.             { return origin; }
  106.         }
  107.         //-----estring3-------end----------
  108.         #endregion
  109. #region estring4-------
  110.         //-----estring4-------------
  111.         private string estring4(string origin)
  112.         {
  113.             try
  114.             {
  115.                 char[] ori = origin.ToCharArray();
  116.                 int len = ori.Length;
  117.                 char[] after = new char[len];
  118.                 for (int i = 0; i < len; i++)
  119.                 {
  120.                     after[i] = ori[i];
  121.                 }
  122.                 //transfer 4 by 4
  123.                 for (int i = 1; i <= (len / 8); i++)
  124.                 {
  125.                     int j = i * 8;
  126.                     after[j - 8] = ori[j - 4];
  127.                     after[j - 7] = ori[j - 3];
  128.                     after[j - 6] = ori[j - 2];
  129.                     after[j - 5] = ori[j - 1];
  130.                     after[j - 4] = ori[j - 8];
  131.                     after[j - 3] = ori[j - 7];
  132.                     after[j - 2] = ori[j - 6];
  133.                     after[j - 1] = ori[j - 5];
  134.                 }
  135.                 string last = new string(after);
  136.                 return last;
  137.             }
  138.             catch
  139.             { return origin; }
  140.         }
  141.         //-----estring4-------end----------
  142.         #endregion
  143. #region estring5-------
  144.         //-----estring5-------------
  145.         private string estring5(string origin)
  146.         {
  147.             try
  148.             {
  149.                 char[] ori = origin.ToCharArray();
  150.                 int len = ori.Length;
  151.                 char[] after = new char[len];
  152.                 for (int i = 0; i < len; i++)
  153.                 {
  154.                     after[i] = ori[i];
  155.                 }
  156.                 //transfer 5 by 5
  157.                 for (int i = 1; i <= (len / 10); i++)
  158.                 {
  159.                     int j = i * 10;
  160.                     after[j - 10] = ori[j - 5];
  161.                     after[j - 9] = ori[j - 4];
  162.                     after[j - 8] = ori[j - 3];
  163.                     after[j - 7] = ori[j - 2];
  164.                     after[j - 6] = ori[j - 1];
  165.                     after[j - 5] = ori[j - 10];
  166.                     after[j - 4] = ori[j - 9];
  167.                     after[j - 3] = ori[j - 8];
  168.                     after[j - 2] = ori[j - 7];
  169.                     after[j - 1] = ori[j - 6];
  170.                 }
  171.                 string last = new string(after);
  172.                 return last;
  173.             }
  174.             catch
  175.             { return origin; }
  176.         }
  177.         //-----estring5-------end----------
  178.         #endregion
  179. #region estring6-------
  180.         //-----estring6-------------
  181.         private string estring6(string origin)
  182.         {
  183.             try
  184.             {
  185.                 char[] ori = origin.ToCharArray();
  186.                 int len = ori.Length;
  187.                 char[] after = new char[len];
  188.                 for (int i = 0; i < len; i++)
  189.                 {
  190.                     after[i] = ori[i];
  191.                 }
  192. //transfrt 6 by 6
  193.                 for (int i = 1; i <= (len / 12); i++)
  194.                 {
  195.                     int j = i * 12;
  196.                     after[j - 12] = ori[j - 6];
  197.                     after[j - 11] = ori[j - 5];
  198.                     after[j - 10] = ori[j - 4];
  199.                     after[j - 9] = ori[j - 3];
  200.                     after[j - 8] = ori[j - 2];
  201.                     after[j - 7] = ori[j - 1];
  202.                     after[j - 6] = ori[j - 12];
  203.                     after[j - 5] = ori[j - 11];
  204.                     after[j - 4] = ori[j - 10];
  205.                     after[j - 3] = ori[j - 9];
  206.                     after[j - 2] = ori[j - 8];
  207.                     after[j - 1] = ori[j - 7];
  208.                 }
  209.                 string last = new string(after);
  210.                 return last;
  211.             }
  212.             catch
  213.             { return origin; }
  214.         }
  215.         //-----estring6-------end----------
  216.         #endregion
  217. #region estring7-------
  218.         //-----estring7-------------
  219.         private string estring7(string origin)
  220.         {
  221.             try
  222.             {
  223.                 char[] ori = origin.ToCharArray();
  224.                 int len = ori.Length;
  225.                 char[] after = new char[len];
  226.                 for (int i = 0; i < len; i++)
  227.                 {
  228.                     after[i] = ori[i];
  229.                 }
  230. //transfer 7 by 7
  231.                 for (int i = 1; i <= (len / 14); i++)
  232.                 {
  233.                     int j = i * 14;
  234.                     after[j - 14] = ori[j - 7];
  235.                     after[j - 13] = ori[j - 6];
  236.                     after[j - 12] = ori[j - 5];
  237.                     after[j - 11] = ori[j - 4];
  238.                     after[j - 10] = ori[j - 3];
  239.                     after[j - 9] = ori[j - 2];
  240.                     after[j - 8] = ori[j - 1];
  241.                     after[j - 7] = ori[j - 14];
  242.                     after[j - 6] = ori[j - 13];
  243.                     after[j - 5] = ori[j - 12];
  244.                     after[j - 4] = ori[j - 11];
  245.                     after[j - 3] = ori[j - 10];
  246.                     after[j - 2] = ori[j - 9];
  247.                     after[j - 1] = ori[j - 8];
  248.                 }
  249.                 string last = new string(after);
  250.                 return last;
  251.             }
  252.             catch
  253.             { return origin; }
  254.         }
  255.         //-----estring7-------end----------
  256.         #endregion
  257. #region estring8-------
  258.         //-----estring8-------------
  259.         private string estring8(string origin)
  260.         {
  261.             try
  262.             {
  263.                 char[] ori = origin.ToCharArray();
  264.                 int len = ori.Length;
  265.                 char[] after = new char[len];
  266.                 for (int i = 0; i < len; i++)
  267.                 {
  268.                     after[i] = ori[i];
  269.                 }
  270. //transfer 8 by 8
  271.                 for (int i = 1; i <= (len / 16); i++)
  272.                 {
  273.                     int j = i * 16;
  274.                     after[j - 16] = ori[j - 8];
  275.                     after[j - 15] = ori[j - 7];
  276.                     after[j - 14] = ori[j - 6];
  277.                     after[j - 13] = ori[j - 5];
  278.                     after[j - 12] = ori[j - 4];
  279.                     after[j - 11] = ori[j - 3];
  280.                     after[j - 10] = ori[j - 2];
  281.                     after[j - 9] = ori[j - 1];
  282.                     after[j - 8] = ori[j - 16];
  283.                     after[j - 7] = ori[j - 15];
  284.                     after[j - 6] = ori[j - 14];
  285.                     after[j - 5] = ori[j - 13];
  286.                     after[j - 4] = ori[j - 12];
  287.                     after[j - 3] = ori[j - 11];
  288.                     after[j - 2] = ori[j - 10];
  289.                     after[j - 1] = ori[j - 9];
  290.                 }
  291.                 string last = new string(after);
  292.                 return last;
  293.             }
  294.             catch
  295.             { return origin; }
  296.         }
  297.         //-----estring8-------end----------
  298.         #endregion
  299. #region estring9-------
  300.         //-----estring9-------------
  301.         private string estring9(string origin)
  302.         {
  303.             try
  304.             {
  305.                 char[] ori = origin.ToCharArray();
  306.                 int len = ori.Length;
  307.                 char[] after = new char[len];
  308.                 for (int i = 0; i < len; i++)
  309.                 {
  310.                     after[i] = ori[i];
  311.                 }
  312. //transfer 9 by 9
  313.                 for (int i = 1; i <= (len / 18); i++)
  314.                 {
  315.                     int j = i * 18;
  316.                     after[j - 18] = ori[j - 9];
  317.                     after[j - 17] = ori[j - 8];
  318.                     after[j - 16] = ori[j - 7];
  319.                     after[j - 15] = ori[j - 6];
  320.                     after[j - 14] = ori[j - 5];
  321.                     after[j - 13] = ori[j - 4];
  322.                     after[j - 12] = ori[j - 3];
  323.                     after[j - 11] = ori[j - 2];
  324.                     after[j - 10] = ori[j - 1];
  325.                     after[j - 9] = ori[j - 18];
  326.                     after[j - 8] = ori[j - 17];
  327.                     after[j - 7] = ori[j - 16];
  328.                     after[j - 6] = ori[j - 15];
  329.                     after[j - 5] = ori[j - 14];
  330.                     after[j - 4] = ori[j - 13];
  331.                     after[j - 3] = ori[j - 12];
  332.                     after[j - 2] = ori[j - 11];
  333.                     after[j - 1] = ori[j - 10];
  334.                 }
  335.                 string last = new string(after);
  336.                 return last;
  337.             }
  338.             catch
  339.             { return origin; }
  340.         }
  341.         //-----estring9-------end----------
  342.         #endregion
  343. #region estring0-------
  344.         //-----estring0-------------
  345.         private string estring0(string origin)
  346.         {
  347.             try
  348.             {
  349.                 char[] ori = origin.ToCharArray();
  350.                 int len = ori.Length;
  351.                 char[] after = new char[len];
  352.                 for (int i = 0; i < len; i++)
  353.                 {
  354.                     after[i] = ori[i];
  355.                 }
  356. //transfer 10 by 10
  357.                 for (int i = 1; i <= (len / 20); i++)
  358.                 {
  359.                     int j = i * 20;
  360.                     after[j - 20] = ori[j - 10];
  361.                     after[j - 19] = ori[j - 9];
  362.                     after[j - 18] = ori[j - 8];
  363.                     after[j - 17] = ori[j - 7];
  364.                     after[j - 16] = ori[j - 6];
  365.                     after[j - 15] = ori[j - 5];
  366.                     after[j - 14] = ori[j - 4];
  367.                     after[j - 13] = ori[j - 3];
  368.                     after[j - 12] = ori[j - 2];
  369.                     after[j - 11] = ori[j - 1];
  370.                     after[j - 10] = ori[j - 20];
  371.                     after[j - 9] = ori[j - 19];
  372.                     after[j - 8] = ori[j - 18];
  373.                     after[j - 7] = ori[j - 17];
  374.                     after[j - 6] = ori[j - 16];
  375.                     after[j - 5] = ori[j - 15];
  376.                     after[j - 4] = ori[j - 14];
  377.                     after[j - 3] = ori[j - 13];
  378.                     after[j - 2] = ori[j - 12];
  379.                     after[j - 1] = ori[j - 11];
  380.                 }
  381.                 string last = new string(after);
  382.                 return last;
  383.             }
  384.             catch
  385.             { return origin; }
  386.         }
  387.         //-----estring0-------end----------
  388.         #endregion
  389.         //-------------------Enumber End-------------
  390.       
  391.         private void button1_Click(object sender, EventArgs e)
  392.         {
  393.             if (textBox3 == null)
  394.             {
  395.                 MessageBox.Show("No Password");
  396.                               
  397.             }
  398.             else
  399.             { if (textBox1 == null)
  400.                 {
  401.                     MessageBox.Show("No words need to Encrypt");
  402.                 }
  403.                 else
  404.                 {
  405.                     string key = textBox3.Text;
  406.                     char[] keyword = key.ToCharArray();
  407.                     int keylen = keyword.Length;
  408.                     string origin = textBox1.Text;
  409.                 //---选择方法---
  410.                     for (int i = 0; i < keylen; i++)
  411.                     {
  412.                                 if (keyword [i]=='1')
  413.                                    { origin =estring1(origin);}
  414.                                 else if(keyword [i]=='2')
  415.                                    { origin =estring2(origin);}
  416.                                 else if (keyword[i] == '3')
  417.                                    { origin  = estring3(origin);}
  418.                                 else if (keyword[i] == '4')
  419.                                    { origin = estring4(origin); }
  420.                                 else if (keyword[i] == '5')
  421.                                    { origin = estring5(origin); }
  422.                                 else if (keyword[i] == '6')
  423.                                    { origin = estring6(origin); }
  424.                                 else if (keyword[i] == '7')
  425.                                    { origin = estring7(origin); }
  426.                                 else if (keyword[i] == '8')
  427.                                    { origin = estring8(origin); }
  428.                                 else if (keyword[i] == '9')
  429.                                    { origin = estring9(origin); }
  430.                                 else if (keyword[i] == '0')
  431.                                    { origin = estring0(origin); }
  432.                                 else
  433.                                    { break; }
  434.                        
  435.                     }
  436.                     string last = origin;
  437.                     textBox2.Clear();
  438.                     textBox2.AppendText(last);
  439.                 }; 
  440.             }
  441.         }
  442.         private void Form1_Load(object sender, EventArgs e)
  443.         {
  444.         }
  445.         private void textBox1_TextChanged(object sender, EventArgs e)
  446.         {
  447.         }
  448.         private void textBox2_TextChanged(object sender, EventArgs e)
  449.         {
  450.         }
  451.         private void textBox3_TextChanged(object sender, EventArgs e)
  452.         {
  453.         }
  454.         private void button2_Click(object sender, EventArgs e)
  455.         {
  456.             if (textBox3 == null)
  457.             {
  458.                 MessageBox.Show("No Password");
  459.             }
  460.             else
  461.             {
  462.                 if (textBox1 == null)
  463.                 {
  464.                     MessageBox.Show("No words need to Encrypt");
  465.                 }
  466.                 else
  467.                 {
  468.                     string key = textBox3.Text;
  469.                     char[] keyword = key.ToCharArray();
  470.                     int keylen = keyword.Length;
  471.                     string origin = textBox1.Text;
  472.                     //---选择方法---
  473.                     for (int i = keylen-1 ; i >= 0; i--)
  474.                     {
  475.                         if (keyword[i] == '1')
  476.                         { origin = estring1(origin); }
  477.                         else if (keyword[i] == '2')
  478.                         { origin = estring2(origin); }
  479.                         else if (keyword[i] == '3')
  480.                         { origin = estring3(origin); }
  481.                         else if (keyword[i] == '4')
  482.                         { origin = estring4(origin); }
  483.                         else if (keyword[i] == '5')
  484.                         { origin = estring5(origin); }
  485.                         else if (keyword[i] == '6')
  486.                         { origin = estring6(origin); }
  487.                         else if (keyword[i] == '7')
  488.                         { origin = estring7(origin); }
  489.                         else if (keyword[i] == '8')
  490.                         { origin = estring8(origin); }
  491.                         else if (keyword[i] == '9')
  492.                         { origin = estring9(origin); }
  493.                         else if (keyword[i] == '0')
  494.                         { origin = estring0(origin); }
  495.                         else
  496.                         { break; }
  497.                     }
  498.                     string last = origin;
  499.                     textBox2.Clear();
  500.                     textBox2.AppendText(last);
  501.                 };
  502.             }
  503.         }
  504.         private void button3_Click(object sender, EventArgs e)
  505.         {
  506.             if (textBox3 == null)
  507.             {
  508.                 MessageBox.Show("No Password");
  509.             }
  510.             else
  511.             {
  512.                 if (textBox1 == null)
  513.                 {
  514.                     MessageBox.Show("No words need to Encrypt");
  515.                 }
  516.                 else
  517.                 {
  518.                     string key = textBox3.Text;
  519.                     char[] keyword = key.ToCharArray();
  520.                     int keylen = keyword.Length;
  521.                     //-----将输入字符串的二进制按字符串处理---
  522.                     string ori1 = textBox1.Text;
  523.                     char[] ori2 = ori1.ToCharArray();
  524.                     byte[] ori3 = System.Text.Encoding.Default.GetBytes(ori2);
  525.                     String origin = Convert .ToBase64String(ori3); 
  526.                     //---选择方法---
  527.                     for (int i = 0; i < keylen; i++)
  528.                     {
  529.                         if (keyword[i] == '1')
  530.                         { origin = estring1(origin); }
  531.                         else if (keyword[i] == '2')
  532.                         { origin = estring2(origin); }
  533.                         else if (keyword[i] == '3')
  534.                         { origin = estring3(origin); }
  535.                         else if (keyword[i] == '4')
  536.                         { origin = estring4(origin); }
  537.                         else if (keyword[i] == '5')
  538.                         { origin = estring5(origin); }
  539.                         else if (keyword[i] == '6')
  540.                         { origin = estring6(origin); }
  541.                         else if (keyword[i] == '7')
  542.                         { origin = estring7(origin); }
  543.                         else if (keyword[i] == '8')
  544.                         { origin = estring8(origin); }
  545.                         else if (keyword[i] == '9')
  546.                         { origin = estring9(origin); }
  547.                         else if (keyword[i] == '0')
  548.                         { origin = estring0(origin); }
  549.                         else
  550.                         { break; }
  551.                     }
  552.                     string last = origin;
  553.                     textBox2.Clear();
  554.                     textBox2.AppendText(last);
  555.                 };
  556.             }
  557.         }
  558.         private void button4_Click(object sender, EventArgs e)
  559.         {
  560.             if (textBox3 == null)
  561.             {
  562.                 MessageBox.Show("No Password");
  563.             }
  564.             else
  565.             {
  566.                 if (textBox1 == null)
  567.                 {
  568.                     MessageBox.Show("No words need to Encrypt");
  569.                 }
  570.                 else
  571.                 {
  572.                     string key = textBox3.Text;
  573.                     char[] keyword = key.ToCharArray();
  574.                     int keylen = keyword.Length;
  575.                     //---将二进制转回----
  576.                     string origin = textBox1.Text.ToString();
  577.                     //---选择方法---
  578.                     for (int i = keylen - 1; i >= 0; i--)
  579.                     {
  580.                         if (keyword[i] == '1')
  581.                         { origin = estring1(origin); }
  582.                         else if (keyword[i] == '2')
  583.                         { origin = estring2(origin); }
  584.                         else if (keyword[i] == '3')
  585.                         { origin = estring3(origin); }
  586.                         else if (keyword[i] == '4')
  587.                         { origin = estring4(origin); }
  588.                         else if (keyword[i] == '5')
  589.                         { origin = estring5(origin); }
  590.                         else if (keyword[i] == '6')
  591.                         { origin = estring6(origin); }
  592.                         else if (keyword[i] == '7')
  593.                         { origin = estring7(origin); }
  594.                         else if (keyword[i] == '8')
  595.                         { origin = estring8(origin); }
  596.                         else if (keyword[i] == '9')
  597.                         { origin = estring9(origin); }
  598.                         else if (keyword[i] == '0')
  599.                         { origin = estring0(origin); }
  600.                         else
  601.                         { break; }
  602.                     }
  603.                     string last = origin;
  604.                     byte[] last1 = Convert.FromBase64String(last);
  605.                     char[] last2 = System.Text.Encoding.Default.GetChars(last1);
  606.                     string last3 = new string(last2);
  607.                     textBox2.Clear();
  608.                     textBox2.AppendText(last3);
  609.                 };
  610.             }
  611.         }
  612.         private void pictureBox1_Click(object sender, EventArgs e)
  613.         {
  614.             //--访问主页:http://www.sosecret.net 专注个人隐私保护
  615.             System.Diagnostics.Process.Start("http://www.sosecret.net");
  616.         }
  617.     }
  618. }

 

 

挑战:有一个2万字符左右的加密文件,接受任何人的破解测试,论坛无法贴,请到blog留下联系方式,我将发送密文。

 

原始文件下载,请查看我的资源!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值