<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í)間,第二部分是用戶(hù)名,第三和第四部分是兩個(gè)36進(jìn)制的整數(shù),其中第三部分是校驗(yàn)碼,第四部分是一個(gè)隨機(jī)數(shù)(我是這么認(rèn)為的,第四部分寫(xiě)死成一個(gè)常量也沒(méi)有什么關(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)做一遍,就可以得到我們自己的許可證了。下面就是我寫(xiě)的構(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)  編輯  收藏 所屬分類(lèi): Swing
    主站蜘蛛池模板: 免费A级毛片无码A∨男男| 四虎1515hh永久久免费| 国产精品成人免费综合| 亚洲综合无码一区二区痴汉| 韩国免费一级成人毛片| 亚洲一区免费在线观看| 免费av欧美国产在钱| 免费成人福利视频| 亚洲人成影院在线| av无码国产在线看免费网站| 亚洲午夜在线一区| 日本一道一区二区免费看 | 免费视频精品一区二区三区 | 中文字幕亚洲综合久久2| 久久久久久久久久国产精品免费| 久久青青草原亚洲AV无码麻豆| 69精品免费视频| 色噜噜AV亚洲色一区二区| 91视频免费观看| 亚洲第一页在线观看| 性xxxx视频播放免费| 成人a毛片视频免费看| 国产av天堂亚洲国产av天堂 | 亚洲爆乳无码专区| 亚洲免费在线观看视频| 亚洲熟妇无码一区二区三区导航| 国产精品视_精品国产免费| 一区二区三区免费视频播放器 | 亚洲乱码无人区卡1卡2卡3| 久久精品国产大片免费观看| 亚洲美女视频网站| 在线观看国产情趣免费视频| 中文字幕在线视频免费观看 | 免费一级e一片在线播放| 波霸在线精品视频免费观看| 亚洲精品偷拍无码不卡av| 在线观看亚洲免费| 日韩免费无码一区二区三区| 亚洲av无码专区在线电影| 成全视频免费高清| 水蜜桃视频在线观看免费播放高清|