我喜欢黑夜,喜欢网络安全,孤独寂寞的黑夜里,我只需要,一包烟,一台笔记本...
更多
首  页>>网络攻防>>PageAdmin密码算法破解获取标准md5
PageAdmin密码算法破解获取标准md5
1004 阅
0 推荐
0 评论


PageAdmin算法破解获取标准md5


有人经常问到我要这个PageAdmin密码破解的工具,今天发出来分享给大家.


下载:

PageAminMd5.rar

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
namespace PageAminMd5
{
    class Tools
    {
         /* 原加密方法
            MD5 mD = new MD5CryptoServiceProvider();
         Encoding encoding = Encoding.GetEncoding("UTF-8");
         string s2 = "pageadmin cms";
         byte[] array = mD.ComputeHash(encoding.GetBytes(s));
         byte[] array2 = mD.ComputeHash(encoding.GetBytes(s2));
         StringBuilder stringBuilder = new StringBuilder(32);
         for (int i = 0; i < array.Length; i++)
         {
          stringBuilder.Append(((int)(array[i] + array2[i])).ToString("x").PadLeft(2, '0'));
         }
         return stringBuilder.ToString();
             */
        public static String unPageAdminPass(String pstr)
        {   
            MD5 mD = new MD5CryptoServiceProvider();
            Encoding encoding = Encoding.GetEncoding("UTF-8");
            string s2 = "pageadmin cms";
            byte[] array2 = mD.ComputeHash(encoding.GetBytes(s2));
            StringBuilder stringBuilder = new StringBuilder(16);
            int index = 0;
            for (int i = 0; i < pstr.Length;)
            {
                //array[i] + array2[i]最小值为0,0的ascii码最小为30,最大为512,30的16进制为1E,512的16进制为200
                //关键,这里如果错了,md5会逆向失败,这里只能大约计算通常不会小于20,如果小于,说明应该是3位长度
                //如果破解异常,只能手工识别将密文分成16段,逆向回来
                //通常取2个字符,如果是1开头或2开头需要取3位字符,如果2开头,可能为“200”,这种几率很小
                String sd_s = pstr.Substring(i, 2);
                
                if ((pstr.Length-i)>=3&&pstr.Substring(i, 3).StartsWith("200"))
                {
                    //如果取3位为200,就取3位
                    sd_s = pstr.Substring(i, 3);
                    i += 3;
                }
                else if (sd_s.StartsWith("1"))
                {
                    //如果以sartNUM开头的同样取3位
                    sd_s=pstr.Substring(i, 3);
                    i += 3;
                }
                else {
                    i += 2;
                }
                if (sd_s.StartsWith("0")) {
                    //0开头去掉(padleft填充了0,逆向回去,就要替换)
                    sd_s = sd_s.Remove(0);
                }
                //165 9f e8 ec 102 189 9a a1 79 170 1ad 110 14e cd de 1a4
                int t = Convert.ToInt32(sd_s, 16);
                int r = t - (int)array2[index];
                stringBuilder.Append(r.ToString("x").PadLeft(2,'0'));
                index++;
            }
            return stringBuilder.ToString();
        
        }
    }
}


已经有 ( 0 ) 位网友对此发表了自己的看法,你也评一评吧! 此文不错,我要推荐-->    推 荐
欢迎参与讨论,请在这里发表您的看法、交流您的观点@禁止各种脚本

  • 点击Top
  • 推荐Top
  • 评论Top
更 多>>
本站采用Java语言开发,Spring框架,欢迎朋友们提意见。重新对页面进行布局,修改了程序,方便开源使用,由于本人美工真的不行 ,很少用背景图片,页面基本都用背景色...
主题:无色无味 | 网站地图|
Copyright (c) 2012-2013 www.shack2.org All Rights Reserved. | 空ICP备111111111号 | 程序设计: shack2 Powered by SJBlog v1.0 联系QQ:1341413415