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激活程序
通过底层的语言来提取主板或者硬盘的串号,把它发给激活码生成服务器,然后返回一个激活码给用户,这样一个激活码对应一台机器,就算重装系统也无需重新获取激活码。激活码包含的内容你机子定义吧。