<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
    主站蜘蛛池模板: 黄色三级三级三级免费看| 精品久久久久久亚洲精品| 一级毛片完整版免费播放一区| 国外成人免费高清激情视频| 亚洲AV无码一区二区三区牛牛| 两性刺激生活片免费视频| 亚洲国产品综合人成综合网站| 在线看片v免费观看视频777| 亚洲成av人片不卡无码| 日韩亚洲国产高清免费视频| 亚洲国产日韩精品| 午夜a级成人免费毛片| 国产亚洲精品国产福利在线观看 | 在线a人片天堂免费观看高清| 国内精品久久久久影院亚洲| 国产一级高清视频免费看| 免费国产污网站在线观看不要卡| 亚洲精品成人网久久久久久| 99视频免费在线观看| 亚洲无线电影官网| 国产精品69白浆在线观看免费| 男人的天堂av亚洲一区2区| 亚洲人成国产精品无码| 老司机69精品成免费视频| 国产亚洲sss在线播放| 免费萌白酱国产一区二区| 成人无码精品1区2区3区免费看| 亚洲成年人在线观看| 在线观看免费毛片| 中文字幕无码免费久久9一区9| 亚洲视频一区在线观看| 日本大片在线看黄a∨免费| 国产免费无码AV片在线观看不卡| 亚洲中文无码a∨在线观看| 国产乱子影视频上线免费观看| 华人在线精品免费观看| 91丁香亚洲综合社区| 国产成人精品日本亚洲专区61 | 24小时在线免费视频| 亚洲AV成人片无码网站| 亚洲AV无码一区二区二三区软件|