<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
    主站蜘蛛池模板: 亚洲国产成人久久综合| 精品久久久久久亚洲精品| 污污免费在线观看| 国产大片线上免费看| 精品女同一区二区三区免费播放| 在线播放免费人成视频在线观看| 亚洲中文字幕在线无码一区二区| av无码国产在线看免费网站| 亚洲mv国产精品mv日本mv| 好男人www免费高清视频在线| 中文字幕无码播放免费| 亚洲一卡2卡3卡4卡国产网站 | 13小箩利洗澡无码视频网站免费| 亚洲午夜福利精品无码| 国产午夜精品久久久久免费视 | 亚洲成无码人在线观看| 青青草a免费线观a| 亚洲av无一区二区三区| 亚洲国产精品专区在线观看| 99热在线日韩精品免费| 久久久久亚洲AV无码专区首JN| 亚洲第一网站免费视频| 亚洲精品无码aⅴ中文字幕蜜桃| 亚洲国产成人影院播放| 成全动漫视频在线观看免费高清版下载| 亚洲天堂中文字幕| 成人五级毛片免费播放| 国产A∨免费精品视频| 久久亚洲AV无码精品色午夜| 好爽…又高潮了毛片免费看| 高清免费久久午夜精品| 亚洲影院在线观看| 亚洲成A人片77777国产| 亚洲色欲色欱wwW在线| 亚洲成aⅴ人片久青草影院| 免费h视频在线观看| 中文字幕在线观看亚洲视频| 免费人成视频x8x8入口| 久久久久免费精品国产小说| 亚洲老熟女五十路老熟女bbw| 亚洲中文字幕在线乱码|