<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ù)加載中……

    java DSA 數(shù)字簽名

    ????????在下面的代碼中,把DSA的公鑰和私鑰保存在文件中,要使用該代碼你需要先得到DSA算法的公鑰和私鑰才行。其實(shí)下面的代碼就是JProbe 6.0.2 不完整分析的注冊(cè)機(jī),本打算在看雪論壇混片精華,分析到后來(lái)才發(fā)現(xiàn)注冊(cè)文件在二進(jìn)制代碼中有多處驗(yàn)證,這不是我的強(qiáng)項(xiàng),再加上年末事情較多,所以只好放棄。

    public final class Codecs
    {

    ??? private Codecs()
    ??? {
    ??? }

    ??? public static final byte[] base64Encode(byte abyte0[])
    ??? {
    ??????? if(abyte0 == null)
    ??????????? return null;
    ??????? byte abyte1[] = new byte[((abyte0.length + 2) / 3) * 4];
    ??????? int i = 0;
    ??????? int j = 0;
    ??????? for(; i < abyte0.length - 2; i += 3)
    ??????? {
    ??????????? abyte1[j++] = Base64EncMap[abyte0[i] >>> 2 & 0x3f];
    ??????????? abyte1[j++] = Base64EncMap[abyte0[i + 1] >>> 4 & 0xf | abyte0[i] << 4 & 0x3f];
    ??????????? abyte1[j++] = Base64EncMap[abyte0[i + 2] >>> 6 & 3 | abyte0[i + 1] << 2 & 0x3f];
    ??????????? abyte1[j++] = Base64EncMap[abyte0[i + 2] & 0x3f];
    ??????? }

    ??????? if(i < abyte0.length)
    ??????? {
    ??????????? abyte1[j++] = Base64EncMap[abyte0[i] >>> 2 & 0x3f];
    ??????????? if(i < abyte0.length - 1)
    ??????????? {
    ??????????????? abyte1[j++] = Base64EncMap[abyte0[i + 1] >>> 4 & 0xf | abyte0[i] << 4 & 0x3f];
    ??????????????? abyte1[j++] = Base64EncMap[abyte0[i + 1] << 2 & 0x3f];
    ??????????? } else
    ??????????? {
    ??????????????? abyte1[j++] = Base64EncMap[abyte0[i] << 4 & 0x3f];
    ??????????? }
    ??????? }
    ??????? for(; j < abyte1.length; j++)
    ??????????? abyte1[j] = 61;

    ??????? return abyte1;
    ??? }

    ??? public static final byte[] base64Decode(byte abyte0[])
    ??? {
    ??????? if(abyte0 == null)
    ??????????? return null;
    ??????? int i;
    ??????? for(i = abyte0.length; abyte0[i - 1] == 61; i--);
    ??????? byte abyte1[] = new byte[i - abyte0.length / 4];
    ??????? for(int j = 0; j < abyte0.length; j++)
    ??????????? abyte0[j] = Base64DecMap[abyte0[j]];

    ??????? int k = 0;
    ??????? int l;
    ??????? for(l = 0; l < abyte1.length - 2; l += 3)
    ??????? {
    ??????????? abyte1[l] = (byte)(abyte0[k] << 2 & 0xff | abyte0[k + 1] >>> 4 & 3);
    ??????????? abyte1[l + 1] = (byte)(abyte0[k + 1] << 4 & 0xff | abyte0[k + 2] >>> 2 & 0xf);
    ??????????? abyte1[l + 2] = (byte)(abyte0[k + 2] << 6 & 0xff | abyte0[k + 3] & 0x3f);
    ??????????? k += 4;
    ??????? }

    ??????? if(l < abyte1.length)
    ??????????? abyte1[l] = (byte)(abyte0[k] << 2 & 0xff | abyte0[k + 1] >>> 4 & 3);
    ??????? if(++l < abyte1.length)
    ??????????? abyte1[l] = (byte)(abyte0[k + 1] << 4 & 0xff | abyte0[k + 2] >>> 2 & 0xf);
    ??????? return abyte1;
    ??? }

    ??? private static byte Base64EncMap[];
    ??? private static byte Base64DecMap[];

    ??? static
    ??? {
    ??????? byte abyte0[] = {
    ??????????? 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
    ??????????? 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
    ??????????? 85, 86, 87, 88, 89, 90, 97, 98, 99, 100,
    ??????????? 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
    ??????????? 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
    ??????????? 121, 122, 48, 49, 50, 51, 52, 53, 54, 55,
    ??????????? 56, 57, 43, 47
    ??????? };
    ??????? Base64EncMap = abyte0;
    ??????? Base64DecMap = new byte[128];
    ??????? for(int i = 0; i < Base64EncMap.length; i++)
    ??????????? Base64DecMap[Base64EncMap[i]] = (byte)i;

    ??? }
    }

    import java.io.UnsupportedEncodingException;

    public final class SignableBlock
    {

    ??? private SignableBlock()
    ??? {
    ??? }

    ??? public static byte[] createSignableBlock(String as[])
    ??????? throws UnsupportedEncodingException
    ??? {
    ??????? StringBuffer stringbuffer = new StringBuffer(256);
    ??????? for(int i = 0; i < as.length; i++)
    ??????????? stringbuffer.append(as[i]);

    ??????? return stringbuffer.toString().getBytes("UTF-8");
    ??? }
    }

    import java.io.UnsupportedEncodingException;
    import java.security.*;


    final class ValidateSignature
    {

    ??? private ValidateSignature()
    ??? {
    ??? }
    ???
    ??? public static void main(String[] args)
    ??? {
    ??? ?String[] as = {"qq:8117892","www.tkk7.com/galaxyp","DSA數(shù)字簽名"};
    ??? ?String s = "MCwCFFSpNp/n4Mq24FDXyVkk/kr815yHAhQO0TLslIJOqUes4OFn0ARvFaAVOw==";
    ??? ?try{
    ??? ??System.out.println(validateSignature(as,s));
    ??? ?}catch(Exception e){}
    ??? }

    ??? private static boolean validate(byte abyte0[], byte abyte1[])
    ??? {
    ??????? Signature signature = null;
    ??????? boolean flag = false;
    ??????? try
    ??????? {
    ??????? ?java.io.ObjectInputStream in=new java.io.ObjectInputStream(new java.io.FileInputStream("myprikey.dat"));
    ??????????? PrivateKey prikey=(PrivateKey)in.readObject();
    ??????????? in.close();
    ???????????
    ??????????? java.io.ObjectInputStream in2=new java.io.ObjectInputStream(new java.io.FileInputStream("mypubkey.dat"));
    ??????????? PublicKey pubkey=(PublicKey)in2.readObject();
    ??????????? in2.close();
    ???????????
    ??????????? signature = Signature.getInstance("SHA/DSA");
    ???????????
    ??????????? signature.initSign(prikey);
    ??????????? signature.update(abyte0);
    ??????????? byte[] bt = signature.sign();
    ??????????? String encode =new String(Codecs.base64Encode(bt),"UTF-8");
    ??????????? System.out.println(encode);
    ???????????
    ??????????? signature.initVerify(pubkey);
    ??????????? signature.update(abyte0);
    ???????????
    ??????????? flag = signature.verify(abyte1);
    ??????? }
    ??????? catch(Exception e)
    ??????? {?
    ??????????? return false;
    ??????? }
    ??????? return flag;
    ??? }

    ??? private static boolean validateSignatureBytes(String as[], byte abyte0[])
    ??????? throws UnsupportedEncodingException
    ??? {
    ??????? byte abyte1[] = SignableBlock.createSignableBlock(as);
    ??????? return validate(abyte1, abyte0);
    ??? }

    ??? public static boolean validateSignature(String as[], String s)
    ??????? throws UnsupportedEncodingException
    ??? {
    ??????? byte abyte0[];
    ??????? try
    ??????? {
    ??????????? abyte0 = Codecs.base64Decode(s.getBytes("UTF-8"));
    ??????? }
    ??????? catch(ArrayIndexOutOfBoundsException arrayindexoutofboundsexception)
    ??????? {
    ??????????? return false;
    ??????? }
    ??????? return validateSignatureBytes(as, abyte0);
    ??? }
    }

    posted on 2006-12-27 09:41 舵手 閱讀(3211) 評(píng)論(4)  編輯  收藏

    評(píng)論

    # re: java DSA 數(shù)字簽名  回復(fù)  更多評(píng)論   

    招聘外掛破解技術(shù)員
    人員: 2名-3名
    項(xiàng)目: 網(wǎng)絡(luò)游戲外掛
    項(xiàng)目資料:海外網(wǎng)絡(luò)游戲,無(wú)風(fēng)險(xiǎn),不牽扯法律責(zé)任。
    支持當(dāng)面交易.
    工作地點(diǎn):SOHO
    工作待遇:詳談
    要求 能獨(dú)立完成軟件加密解密
    精通軟件軟件逆向分析工程、軟件匯編/反匯編分析
    精通系統(tǒng)底層(API)開(kāi)發(fā)、調(diào)試/反調(diào)試技術(shù)
    精通網(wǎng)絡(luò)通訊協(xié)議分析與開(kāi)發(fā),熟悉網(wǎng)絡(luò)游戲通過(guò)協(xié)議及架構(gòu)
    熟練掌握VC、ASM、VB編程語(yǔ)言中任意一種
    有能力的請(qǐng)與我聯(lián)系 尋求可以長(zhǎng)期合作的
    可將您的個(gè)人簡(jiǎn)歷和聯(lián)系方式投放 EMAI: jiaxinwb@163.com
    2007-01-03 17:37 | sssss

    # re: java DSA 數(shù)字簽名  回復(fù)  更多評(píng)論   

    好,支持。
    你寫(xiě)的比較高深,我也寫(xiě)了一篇關(guān)于數(shù)字簽名的文章,有時(shí)間希望能夠交流交流。地址如下:http://coresun.blog.sohu.com/70922655.html
    2007-11-20 14:16 | 孫志偉

    # re: java DSA 數(shù)字簽名  回復(fù)  更多評(píng)論   

    兄弟學(xué)習(xí)了;我也正在用數(shù)字簽名;請(qǐng)問(wèn)myprikey.dat,mypubkey.dat是怎么回事;程序運(yùn)行結(jié)果 false;請(qǐng)賜教:EMAIL:kongfanyu7241@163.com
    2008-01-02 11:31 | 孔夫子

    # re: java DSA 數(shù)字簽名  回復(fù)  更多評(píng)論   

    人好技術(shù)好。
    2008-03-05 17:25 | 人好技術(shù)好。

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲中文字幕无码一区| 国产一精品一aⅴ一免费| 亚洲国产另类久久久精品小说| 亚洲AV成人一区二区三区观看 | 午夜一区二区免费视频| tom影院亚洲国产一区二区| 国产福利在线观看免费第一福利| 亚洲精品亚洲人成在线观看麻豆| 18级成人毛片免费观看| 亚洲欧洲精品视频在线观看| 可以免费看黄视频的网站| 亚洲国产区男人本色在线观看| 成人看的午夜免费毛片| 狠狠入ady亚洲精品| 亚洲人成无码www久久久| 羞羞视频免费网站在线看| 亚洲精品国产字幕久久不卡 | 久久亚洲国产成人精品性色| xxxx日本免费| 亚洲AV无码一区二区三区网址| 免费国产高清视频| 91在线免费视频| 亚洲伊人tv综合网色| 影音先锋在线免费观看| 日本免费精品一区二区三区| 国产亚洲精久久久久久无码| 久久久久久精品免费免费自慰| 亚洲国产精品18久久久久久 | 亚洲精品国产手机| 最好免费观看韩国+日本| 一级做a爰片性色毛片免费网站| 亚洲国产精品无码专区| 亚洲免费一级视频| 黄色一级毛片免费| 亚洲AV无码一区二区乱子伦 | 无码日韩精品一区二区三区免费| 亚洲国产成人综合| 亚洲а∨天堂久久精品| 精品一区二区三区无码免费视频| 亚洲AV永久无码精品网站在线观看| AV在线播放日韩亚洲欧|