我需要一个能根据用户名生成注册码的程序的源代码(50分)

其实就是根据用户名,对他的二进制值作一堆运算,结果就是注册码。
delphi.yesite.com 好像有这个控件
 
可以自己做!
 
自己做吧,不然不保险。
 
我的思路:用户名的每个字符的低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
 
太简单了,最好用不可逆变换!
 
to zyy04兄,
简单是简单了点可还算实用,而且好象是不可逆的算法。
 
to zyy04
什么是不可逆运算,能举个例子吗?
 
http://chinazip.home.chinaren.com
上有一个,delphi源码!
 
将用户名的ASCII码各个移位后相加。如123456用户名则,‘1’左移1位加上
‘2’左移2位加‘3’左移3位。。。。
不过这样会有多个用户名加后都是同一个值的可能性。
 
简单点好。我觉得。
 
多人接受答案了。
 
为什么不用单向函数?MD5或SHA都可,象UNIX中一样
 
顶部