• 标 题：请问各位高手这个程序能不能写注册器出来？还是要用穷举法来算注册码？ (802字)
• 作 者：foxtest
• 时 间：2001-3-29 17:34:01
• 链 接：http://bbs.pediy.com

ID=任意数字（如:12345678）
ZSHNUM=001110101001100001110110010101000011001000010000
BHD = ''
DO WHILE ID / 2 <> 0
BMOD = IIF(MOD(ID,2) = 0,'0','1')
BHD = BMOD + BHD
ID = INT(ID / 2)
ENDDO

If len('&bhd')<48
BHD=replicate('0',48-len('&bhd'))+BHD
ENDIF

NBHD = ''

DO WHILE ZCH / 2 <> 0
BMOD = IIF(MOD(ZCH,2) = 0,'0','1')
NBHD = BMOD + NBHD
ZCH = INT(ZCH / 2)
ENDDO

If len('&nbhd')<48
NBHD=replicate('0',48-len('&nbhd'))+NBHD
ENDIF

YHNUM = ''

FOR BI = 1 TO 20
IF SUBSTR(BHD,BI,1) = SUBSTR(NBHD,BI,1)
YHNUM = YHNUM + '0'
ELSE
YHNUM = YHNUM + '1'
ENDIF
ENDFOR

FOR BI = 21 TO 48
IF SUBSTR(BHD,BI,1) = SUBSTR(NBHD,BI,1)
YHNUM = YHNUM + '1'
ELSE
YHNUM = YHNUM + '0'
ENDIF
ENDFOR

IF YHNUM == ZSHNUM
OK!
ELSE
Error!

• 标 题：这好象不是很复杂呀 (1千字)
• 作 者：blowfish
• 时 间：2001-3-29 17:43:50

//----------------------------------------------------------
ID=任意数字（如:12345678）
BHD = ''
DO WHILE ID / 2 <> 0
BMOD = IIF(MOD(ID,2) = 0,'0','1')
BHD = BMOD + BHD
ID = INT(ID / 2)
ENDDO

If len('&bhd')<48
BHD=replicate('0',48-len('&bhd'))+BHD
ENDIF
//-----------------------------------------------------------

//-----------------------------------------------------------
NBHD = ''

DO WHILE ZCH / 2 <> 0
BMOD = IIF(MOD(ZCH,2) = 0,'0','1')
NBHD = BMOD + NBHD
ZCH = INT(ZCH / 2)
ENDDO

If len('&nbhd')<48
NBHD=replicate('0',48-len('&nbhd'))+NBHD
ENDIF
//---------------------------------------------------------

//---------------------------------------------------------
YHNUM = ''

FOR BI = 1 TO 20
IF SUBSTR(BHD,BI,1) = SUBSTR(NBHD,BI,1)
YHNUM = YHNUM + '0'
ELSE
YHNUM = YHNUM + '1'
ENDIF
ENDFOR

FOR BI = 21 TO 48
IF SUBSTR(BHD,BI,1) = SUBSTR(NBHD,BI,1)
YHNUM = YHNUM + '1'
ELSE
YHNUM = YHNUM + '0'
ENDIF
ENDFOR
//------------------------------------------------------

//------------------------------------------------------
ZSHNUM=001110101001100001110110010101000011001000010000
IF YHNUM == ZSHNUM
OK!
ELSE
Error!

• 标 题：大概： (409字)
• 作 者：１２１２
• 时 间：2001-3-29 17:45:49

(1) 把ID转换成2进制数放到BHD中
(2) 把ZCH转换成2进制数放到NBHD中
(3) BHD的前20位如果和NBHD的对应位相同，YHNUM添加一个0，否则添加1
(4) BHD的21~48位如果和NBHD的对应位相同，YHNUM添加一个1，否则添加0

(3)相当于BHD前20位和NBHD进行异或
(4)相当于BHD21~48位和NBHD进行与或(对XOR取补)

1~20位：ZSHNUM ^ ZCH
21~48位：~(ZSHNUM ^ ZCH)