我的思路:用户名的每个字符的低8位的ASCII值相加然后再加上一个1-999999(任意大整数)之间的一个随机数.
好处是保证注册码唯一(重复的概率很小)又没有规律。
delphi的source 如下
function Genkey(username:string):String;
var sum,i:integer;
s:string;
ch:char;
begin
sum := 0;
for i:= 1 to Length(username)+1do
begin
ch := username;
sum := sum+ ord(ch);//get ascii value
end;
sum :=sum+random(999999);
s:= Format('%6.6d',[sum]);//gen 6 digit key
Result := S;
end;
//end of procedure
good luck
larry