<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    GalaxyPilot —— D.S


            生命不熄,戰(zhàn)斗不止
    數(shù)據(jù)加載中……

    技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)

    第一個(gè)粘出解碼函數(shù)的人將得到價(jià)值幾百美元的混淆工具,據(jù)評(píng)價(jià)也是目前最好的混淆器。當(dāng)然,前題是你想要:)。

    public class Base64Coder
    {

        public static void main(String[] args)
        {
         String a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";//這里不技持中文
         String ru;
         char[] ch;
         try{
          byte[] bt= a.getBytes("UTF-8");
          ch = encrypt(bt);
          //ru = new String(decrypt(ch));
          System.out.println(ru);
         }catch(Exception e){}
        }
        public static char[] encrypt(byte abyte0[])
        {
            int i = abyte0.length;
            int j = (i * 4 + 2) / 3;
            int k = ((i + 2) / 3) * 4;
            char ac[] = new char[k];
            int l = 0;
            for(int i1 = 0; l < i; i1++)
            {
                int j1 = abyte0[l++] & 0xff;
                int k1 = l >= i ? 0 : abyte0[l++] & 0xff;
                int l1 = l >= i ? 0 : abyte0[l++] & 0xff;
                int i2 = j1 >>> 2;
                int j2 = (j1 & 3) << 4 | k1 >>> 4;
                int k2 = (k1 & 0xf) << 2 | l1 >>> 6;
                int l2 = l1 & 0x3f;
                ac[i1++] = cChar[i2];
                ac[i1++] = cChar[j2];
                ac[i1] = i1 >= j ? '=' : cChar[k2];
                i1++;
                ac[i1] = i1 >= j ? '=' : cChar[l2];
            }

            return ac;
        }

        private static char cChar[];
        private static byte bByte[];

        static
        {
            cChar = new char[64];
            int i = 0;
            for(char c = 'A'; c <= 'Z'; c++)
                cChar[i++] = c;

            for(char c1 = 'a'; c1 <= 'z'; c1++)
                cChar[i++] = c1;

            for(char c2 = '0'; c2 <= '9'; c2++)
                cChar[i++] = c2;

            cChar[i++] = '+';
            cChar[i++] = '/';
            bByte = new byte[128];
            for(int j = 0; j < bByte.length; j++)
                bByte[j] = -1;

            for(int k = 0; k < 64; k++)
                bByte[cChar[k]] = (byte)k;

        }
    }

    posted on 2007-10-12 09:49 舵手 閱讀(2116) 評(píng)論(10)  編輯  收藏

    評(píng)論

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    不容易哦
    2007-10-12 09:57 | 千里冰封

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    看代碼比較類(lèi),還是把代碼的原理寫(xiě)出來(lái).
    2007-10-12 12:28 | KF.咖啡

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    哈哈,寫(xiě)出來(lái)那個(gè)挑個(gè)什么啊!過(guò)兩天發(fā)布解碼函數(shù)
    2007-10-12 13:13 | 舵手 QQ:8117892

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    呵呵 解碼 G_G
    這也被你整出來(lái) !·#¥%……

    仔細(xì)看了下
    // 這好說(shuō) 與 111.... 到時(shí)候 不變 到 j1
    // 還真玩人
    int j1 = abyte0[l++] & 0xff;

    //k1 ,l1 得到 0 或 abyte0[l++]
    int k1 = l >= i ? 0 : abyte0[l++] & 0xff;
    int l1 = l >= i ? 0 : abyte0[l++] & 0xff;

    // >>> ??什么東西 難道是 j1>> (>>2) ?
    //>> 是 和 除 /2 有點(diǎn)同 1101 >> 0110 : 1
    int i2 = j1 >>> 2;

    // ....... (無(wú)語(yǔ))
    int j2 = (j1 & 3) << 4 | k1 >>> 4;
    int k2 = (k1 & 0xf) << 2 | l1 >>> 6;
    int l2 = l1 & 0x3f;
    //靜態(tài)塊中定義的 cChar 定義的 什么 A..Z 9..0 a..z
    ac[i1++] = cChar[i2];
    ac[i1++] = cChar[j2];
    // ..... 外頭的 l1 還是 不好好一步一步走的 !·#¥%……
    ac[i1] = i1 >= j ? '=' : cChar[k2];
    i1++;
    ac[i1] = i1 >= j ? '=' : cChar[l2];

    看來(lái) 我 好好當(dāng)代碼工人把 (有點(diǎn)不干啊 )
    2007-10-12 17:03 | G_G

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    等 等
    java 好象是 16 為是吧
    那第一句的
    int j1 = abyte0[l++] & 0xff;
    只 給 后 面 8位與 前面的補(bǔ)0 也與
    !@#$%
    這怎么反 啊
    等結(jié)果
    2007-10-12 17:16 | G_G

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    貌似對(duì)了,大家?guī)兔y(cè)試一下吧。代碼寫(xiě)的有點(diǎn)亂!
    private static byte[] decrypt(char[] ch) {

    int len = ch.length / 4 * 3;
    if(ch[ch.length - 1] == '=') len--;
    if(ch[ch.length - 2] == '=') len--;
    byte[] result = new byte[++len];
    for(int i = 0, j = 0; i < len; ) {

    int a = bByte[ch[j++]] & 0x3f;
    int b = bByte[ch[j++]] & 0x3f;
    result[i++] = (byte)(a << 2 | b >>> 4);
    if(ch[j] == '=') break;
    int c = bByte[ch[j++]] & 0x3f;
    result[i++] = (byte)(b << 4 | c >>> 2);
    if(ch[j] == '=') break;
    int d = bByte[ch[j++]] & 0x3f;
    result[i++] = (byte)(c << 6 | d);
    }

    return result;
    }
    2007-10-12 19:19 | lmatt

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    編碼的過(guò)程,應(yīng)該是把3個(gè)字節(jié)轉(zhuǎn)成了4個(gè)字節(jié)。
    2007-10-12 19:28 | lmatt

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    lmatt果然很牛,試了一下是通過(guò)了。可以和我聯(lián)系一下,混淆器需要的話發(fā)給你。

    下面是我的解碼函數(shù)
    public static byte[] decrypt(char ac[])
    {
    int i = ac.length;
    if(i % 4 != 0)
    throw new IllegalArgumentException("Length of Base64 encoded input string is not a multiple of 4.");
    for(; i > 0 && ac[i - 1] == '='; i--);
    int j = (i * 3) / 4;
    byte abyte0[] = new byte[j];
    int k = 0;
    int l = 0;
    do
    {
    if(k >= i)
    break;
    char c = ac[k++];
    char c1 = ac[k++];
    char c2 = k >= i ? 'A' : ac[k++];
    char c3 = k >= i ? 'A' : ac[k++];
    if(c > '\177' || c1 > '\177' || c2 > '\177' || c3 > '\177')
    throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
    byte byte0 = bByte[c];
    byte byte1 = bByte[c1];
    byte byte2 = bByte[c2];
    byte byte3 = bByte[c3];
    if(byte0 < 0 || byte1 < 0 || byte2 < 0 || byte3 < 0)
    throw new IllegalArgumentException("Illegal character in Base64 encoded data.");
    int i1 = byte0 << 2 | byte1 >>> 4;
    int j1 = (byte1 & 0xf) << 4 | byte2 >>> 2;
    int k1 = (byte2 & 3) << 6 | byte3;
    abyte0[l++] = (byte)i1;
    if(l < j)
    abyte0[l++] = (byte)j1;
    if(l < j)
    abyte0[l++] = (byte)k1;
    } while(true);
    return abyte0;
    }
    2007-10-13 08:44 | 舵手 QQ:8117892

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    在qq上加你為好友了
    2007-10-13 10:39 | lmatt

    # re: 技術(shù)挑戰(zhàn)——根據(jù)編碼函數(shù)寫(xiě)出解碼函數(shù)  回復(fù)  更多評(píng)論   

    哇!是不容易也,lmatt就是牛!
    2007-10-20 02:00 | bigboy

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成人无码a级毛片免费| 国内免费高清在线观看| 亚洲天堂一区二区三区四区| 免费无码一区二区三区蜜桃大 | 插鸡网站在线播放免费观看| 亚洲一区中文字幕久久| 日韩成人免费在线| 国产猛男猛女超爽免费视频| 亚洲天堂男人影院| 日本亚洲视频在线| 免费特级黄毛片在线成人观看| 伊人免费在线观看| 亚洲av无码一区二区三区在线播放 | 亚洲精品无码久久久久AV麻豆| 91老湿机福利免费体验| 全部一级一级毛片免费看| 亚洲综合丁香婷婷六月香| 日日噜噜噜噜夜夜爽亚洲精品| 全免费毛片在线播放| 99精品免费视品| 亚洲aⅴ无码专区在线观看春色| 久久亚洲AV午夜福利精品一区| 国产高清在线精品免费软件| 99re免费视频| www.xxxx.com日本免费| 亚洲色丰满少妇高潮18p| 亚洲五月六月丁香激情| 亚洲视频在线精品| 国产高清在线免费视频| 99久久99这里只有免费费精品 | 免费无遮挡无遮羞在线看| 亚洲同性男gay网站在线观看| 亚洲永久精品ww47| 免费国产在线观看不卡| 99久久免费精品国产72精品九九| 国产亚洲免费的视频看| 五月天国产成人AV免费观看| 亚洲国产午夜精品理论片在线播放 | 国产成人精品日本亚洲| 免费在线观看你懂的| 欧洲精品免费一区二区三区|