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

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

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

    posts - 38,  comments - 22,  trackbacks - 0


    ? alloy的許可證分成四個(gè)部分,每個(gè)部分之間用#號(hào)分隔,第一部分是許可證過(guò)期時(shí)間,第二部分是用戶名,第三和第四部分是兩個(gè)36進(jìn)制的整數(shù),其中第三部分是校驗(yàn)碼,第四部分是一個(gè)隨機(jī)數(shù)(我是這么認(rèn)為的,第四部分寫死成一個(gè)常量也沒有什么關(guān)系)。 ?
    ? ? ? 好了,了解了許可證的構(gòu)造之后,我們來(lái)了解一下alloy檢驗(yàn)許可證是否合法和過(guò)期的過(guò)程。 ?
    ? ? ? 一:分離許可證的各個(gè)部分。 ?
    ? ? ? 二:判斷日期部分的長(zhǎng)度,如果長(zhǎng)度大于1,就構(gòu)造一個(gè)過(guò)期時(shí)間,否則過(guò)期時(shí)間為null。(這下子我們就可以通過(guò)使日期部分的長(zhǎng)度不超過(guò)1來(lái)讓alloy永不過(guò)期了^-^)。 ?
    ? ? ? 三:調(diào)用Long.parseLong(String, ? int)方法解析出第三和第四部分兩個(gè)36進(jìn)制整數(shù)的10進(jìn)制的值。 ?
    ? ? ? 四:使用java.util.zip.CRC32來(lái)計(jì)算校驗(yàn)值,計(jì)算的過(guò)程是把從第四部分得到的10進(jìn)值整數(shù)對(duì)127取模,然后加上第一、二兩個(gè)部分(包括中間的#號(hào)),這樣就構(gòu)造出一個(gè)字符串,然后調(diào)用CRC32.update()方法計(jì)算這個(gè)字符串的校驗(yàn)值。 ?
    ? ? ? 五:使用getValue()方法從CRC32中取得校驗(yàn)值,然后將這個(gè)校驗(yàn)值與從第三部分獲得的10進(jìn)制數(shù)值比較,如果相等,則校驗(yàn)成功。隨后就是判斷當(dāng)前日期是否過(guò)期的操作了。 ?
    ? ? ? 這大致就是alloy驗(yàn)證許可證的過(guò)程,我們反過(guò)來(lái)做一遍,就可以得到我們自己的許可證了。下面就是我寫的構(gòu)造許可證的方法,供大家參考。 ?
    ? ?
    ? public ? String ? generate(String ? user) ?
    ? { ?
    ? ? ? ? ? String ? exp ? = ? "x"; ?
    ? ? ? ? ? String ? rand ? = ? "torresg"; ?
    ? ? ? ? ? long ? l ? = ? Long.parseLong(rand, ? 36); ?
    ? ? ? ? ? CRC32 ? crc32 ? = ? new ? CRC32(); ?
    ? ? ? ? ? crc32.update((l ? % ? 127L ? + ? exp ? + ? "#" ? + ? user).getBytes()); ?
    ? ? ? ? ? String ? checksum ? = ? Long.toString(crc32.getValue(), ? 36); ?
    ? ? ? ? ? return ? exp ? + ? "#" ? + ? user ? + ? "#" ? + ? checksum ? + ? "#" ? + ? rand; ?
    ? } ?
    ? ?
    ? 另外就是過(guò)期時(shí)間不能為空,因?yàn)閍lloy中另外某個(gè)地方要對(duì)這個(gè)時(shí)間進(jìn)行處理。為空的話也會(huì)驗(yàn)證失敗。所以過(guò)期時(shí)間要使用一個(gè)長(zhǎng)度為1的字符串。

    com.incors.plaf.alloy.AlloyLookAndFeel.setProperty("alloy.licenseCode",
    ????"v#ej_technologies#uwbjzx#e6pck8");
    ??try {
    ???javax.swing.LookAndFeel alloyLnF = new com.incors.plaf.alloy.AlloyLookAndFeel();

    ???javax.swing.UIManager.setLookAndFeel(alloyLnF);
    ??} catch (javax.swing.UnsupportedLookAndFeelException ex) {
    ???// You may handle the exception here
    ???ex.printStackTrace();
    ??}

    posted on 2007-01-11 11:00 aaabbb 閱讀(328) 評(píng)論(0)  編輯  收藏 所屬分類: Swing
    主站蜘蛛池模板: 无码专区AAAAAA免费视频| 三年片免费高清版 | 国产jizzjizz免费视频| 亚洲中文字幕久久久一区| 拔擦拔擦8x华人免费久久| 自拍偷自拍亚洲精品偷一| 亚洲国产精品国产自在在线| 国产视频精品免费视频| 亚洲成AV人片在线播放无码| 中文字幕在线观看免费视频| 成人亚洲国产va天堂| 国产免费小视频在线观看| 一区二区三区免费电影| 亚洲美女在线观看播放| 成人亚洲综合天堂| 无码囯产精品一区二区免费| 国产午夜无码精品免费看| 亚洲人成77777在线观看网| 国产成人亚洲精品91专区手机| 波多野结衣在线免费观看| 羞羞视频免费网站在线看| 最新亚洲春色Av无码专区| 日本亚洲欧洲免费天堂午夜看片女人员| 免费一本色道久久一区| 国产免费无码一区二区| 亚洲a∨无码精品色午夜| 亚洲美女视频一区| 最新精品亚洲成a人在线观看| 免费一本色道久久一区| 久久国产乱子伦精品免费不卡| 粉色视频成年免费人15次| 亚洲国产精品综合福利专区| 中文字幕专区在线亚洲| 精品免费国产一区二区| 99在线精品免费视频九九视| a级毛片在线免费看| 一级特级aaaa毛片免费观看 | 亚洲影视自拍揄拍愉拍| 久久亚洲精品成人| 亚洲色偷拍区另类无码专区| 免费观看的毛片手机视频|