1. 編寫可以激活的java程序。
先設置一個系統靜態變數,代表是不是第一次使用;
如果是就獲得當前的1.第一次使用的系統時間(最好是網路時間),然後加上2.試用期(一年),還可以有你自己的3.認證碼(隨便獲得一個Object的UUID)。
這三個欄位之間用&(或者其他任意的特殊字元)隔開,最後寫成一個字元串
用你程序選定的JAVA的加密手段加密這個字元串,最後設置為系統靜態變數
如果不是第一次使用,就用解密程序解密靜態變數,然後獲取靜態字元串中不用的欄位
用現在的系統時間減去欄位1,把欄位2減去差值
最後再按前面的方法寫回靜態字元串
反復減去時間,如果欄位2最後是0了,就給出提示。
我這里有加密和解密的程序,要可以給你。
上訴的方法自己弄得隱秘一些(變數設置private之類。。),看著辦。。。
2. 用JAVA開發的B/S程序列如何添加授權激活碼
雙手大於智慧說的在理,難些的就是做機器碼了,可能是需要驗證硬體(沒做過,我估計哈),查查有沒有這樣的API
3. 編寫了一個java的C/S小應用程序,現在想實現授權使用的功能,必須輸入由我本人生成的注冊碼才能使用,跪求~~
http://blog.csdn.net/coolwzjcool/article/details/6698327
上面得地址是怎麼獲取硬碟編號和MAC地址的,
你可以自己定義一個加密演算法,如:硬板編碼no1,mac地址add1,no1加上mac的地址在加上自己指定的一個字元串,拼成一個大串,然後對這個大串進行MD5編碼(可以使用其他的,或者自己定義的),生產注冊碼,應用程序在啟動時候檢查是否注冊,沒注冊的填寫注冊嗎,程序獲取系統的硬碟和MAC地址,再進行一次編碼,和輸入的對比,一樣就算成功
4. JAVA未來教育激活碼
應該有你需要的吧 最新版的:
5. 求java自動生成一個序列號的方法,急急急...
package com.test4;
public class Test7 {
public static void main(String[] args) {
System.out.println(getNum("20100505",3));
}
//假設資料庫里有個20100505005的編號
private static String getNum(String firstPart, int len) {
//調用資料庫獲得20100505005這個編號
String oldNum = "20100505005";
int num = Integer.parseInt(oldNum.replace(firstPart,""));
String numStr = ++num +"";
int length = numStr.length();
for (int i = length; i < len; i++) {
numStr = "0"+numStr;
}
return firstPart + numStr;
}
}
6. 如何用JAVA生成注冊序列號
平常我們都接觸過軟體注冊,輸入序列號、激活碼、注冊碼、授權碼;對於這些字元碼到底代表什麼含義不甚了解,但一般來說,這些字元碼中都有幾個特點:
1、唯一性,肯定是一個唯一的序列號,否則就會存在濫用的問題。
2、加密性,肯定是經過加密或者混亂的,防止大家自己生成序列號。
3、解密性,軟體自身肯定可以解密,否則無法驗證合法性。
4、可讀性,序列號一般都比較標准,方便書寫和記憶,所以一般都為數字和字母。
以下給出簡單示例:
[java] view plain
/**
* byte轉哈希
* @param b
* @return
*/
public static String byte2hex(byte[] b) {
String hs = "";
String stmp = "";
for (int n = 0; n < b.length; n++) {
stmp = Integer.toHexString(b[n] & 0xFF);
if (stmp.length() == 1)
hs += ("0" + stmp);
else
hs += stmp;
}
return hs.toUpperCase();
}
/**
* 哈希轉byte
* @param b
* @return
*/
public static byte[] hex2byte(byte[] b) {
if ((b.length % 2) != 0)
throw new IllegalArgumentException("長度不是偶數");
byte[] b2 = new byte[b.length / 2];
for (int n = 0; n < b.length; n += 2) {
String item = new String(b, n, 2);
b2[n / 2] = (byte) Integer.parseInt(item, 16);
}
return b2;
}
7. java自動生成的序列號
添加前進頁面的時候就把資料庫中最大的那個序列號拿出來,加上1在頁面顯示,然後傳道後台保存,修改的話到資料庫驗證下序列號,存在的話就不給保存。
8. 怎麼用機器碼生成注冊碼
注冊軟體的注冊碼和機器碼關系是:獲得你機器的相關硬體信息通過一些演算法加密後得到機器碼,你將機器碼給他後通過反向解密就可以知道你的硬體信息,生成和硬體配對的注冊碼,不同的軟體,作者採用不同的加密方法,所以你應說明你的軟體名稱及版本並提供機器碼。有破過的人難說會幫你:-)
9. 求序列號生成演算法
隨機序列的演算法
作者:unknown 更新時間:2005-03-17
找到了兩個演算法, 第一個很簡單, 但可惜不是隨機的, 第二個是典型的偽隨機數演算法, 可惜要用到2的幾百萬次方這樣巨大的整數, 真痛苦
要是有UNIX上計算密碼的源代碼就好了
第一種做法:
f(k) = (k*F(N-1)) mod F(N)
其中,
k是一個序列號, 就是要取的那個數的順序號
F(N)是這樣一個序列 F(0) = 0, F(1) = 1, F(N+2) = F(N+1)+F(N) (for N>=0)
第二種做法
V = ( ( V * 2 ) + B .xor. B ... )(Mod 2^n)
N+1 N 0 2
V是要取的隨機數, B是個種子, n是隨機數的最大個數
原來這個問題, 很高難, 不少數學高手都為解決這個問題寫了論文, 咳咳, 偶真是個白痴
呵呵, 效果肯定是不錯啦, 因為用不到很大的表.
至於應用是這樣的, 比如, 你要給每個用戶在注冊的時候一個ID但有不希望用戶在看到自己的ID的時候能知道其他用戶的ID, 如果用SEQUENCE來生成ID的話, 一個用戶只要把自己的ID減1就能得到其它用戶的ID了. 所以要用隨機數來做ID, 這樣用戶很難猜到其他用戶的ID了.
當然主要的問題是, 隨機數可能重復. 因此希望使用一個隨機數做種子用它來確定一組"無規律"的自然數序列, 並且在這個序列中不會出現重復的自然數. 在這里使用的方法生成的序列並不是沒有規律的, 只不過這個軌律很難被發現就是了.
Xn+1 = (aXn + b) mod c (其中, abc通常是質數)是一種被廣泛使用的最簡單的隨機數發生演算法, 有研究表表明這個演算法生成的隨機數基本上符合統計規律, JAVA, BORLAND C等用的都是這個方法, 一般只要保證第一個種子是真正的隨機數就行了,
下面來說一下重復的問題,
上述方法會有可能出現重復, 因為當(aXn + b)有可能是同樣的數或者說余數相同的數, 因此要想不重復就得變形
偶想到的方法是
Xn=(a*n + b) mod c n是一個在1到c之間的整數, a*n + b就是一個線性公式了, 且若n不同則a*n + b也不同, 它們除上質數c得到的余數也肯定不同, 因為 若不考慮a和b而只有n的時候, 每次的結果都是n,而線性公式, 只不過移動了這條直線的位置和斜率而已, 每個結果仍然不會相同的,
為了增加不可預計性, 偶又為上面那個公式設計了, 隨機數種子, 於是就變成了這個樣子
F(N)=(隨機數*(N+隨機數))MOD 一個質數
這樣就能夠產生 1到選定質數之間的一個"無規律"的自然數序列了, 只要改變隨機數就能改變序列的次序
在應用的時候, 要把隨機數種子和最後用到的序列號保存到一個表裡, 每此使用的時候取出來算好, 再把序列號更新一下就可以了
具體地說, 就是可以建一個表來保存每個序列的隨機數種子, 然後再為這個序列建一個SEQUENCE就行了
然後就
SELECT MOD(序列控製表.隨機數*(SEQ.NEXTVAL+序列控製表.隨機數)),序列控製表.質數)
FROM 序列控製表
WHERE 序列控製表.序列ID=XX
就OK了
注意 序列控製表.質數 決定了序列的范圍
http://www.ddvip.net/database/mssql/index2/81.htm /* CopyRight */
當然,我以前也見過那種類型的,就是「真隨機」,大概是根據隨機按鍵的鍵位和滑鼠在CRT上任意的「隨機」位置以及當時的系統時間(或相對間隔,一般至少毫秒級)來適應某種較復雜的演算法來產生的。...其實,可以產生隨機效應的自變數的確是很多的,就看你怎麼用好了。
去看看系統論和混沌學吧,還有高等數學中的分形理論和物理熱學中的耗散結構理論,可能會有所幫助,呵呵。
最後,倒有興趣問問你要的隨機數是做什麼用呢,是個子問題嗎?
10. java激活程序
通過底層的語言來提取主板或者硬碟的串號,把它發給激活碼生成伺服器,然後返回一個激活碼給用戶,這樣一個激活碼對應一台機器,就算重裝系統也無需重新獲取激活碼。激活碼包含的內容你機子定義吧。