sn00p said:disco, your mod is the wrong way round - Should be equal to zero as no remainder means it divisible by 65.
edit: ignore me, just noticed your loops are while not valid.....d'oh.
sn00p said:I still like that 000-000-000-000-000-000 is a valid key!
disco said:I think they have gotten round that passing the checksum div by 65 by saying each part of the key must be between 100 and 999
richy22 said:if your ever at a meet i owe u some beers!
Dim licenceKey
Dim licenceKeyCheckSum
Dim intHighestNumber
Dim licenceKeyPart1
Dim licenceKeyPart2
Dim licenceKeyPart3
Dim licenceKeyPart4
Dim licenceKeyPart5
Dim licenceKeyPart6
Dim keyType
keyType = 0
intHighestNumber = 999
licenceKeyPart1 = 0
licenceKeyPart2 = 0
licenceKeyPart3 = 0
licenceKeyPart4 = 0
licenceKeyPart5 = 0
licenceKeyPart6 = 0
licenceKeyCheckSum = 1
licenceKey = ""
keyType = RandomNumber2(2)
If keyType = 1 then
Do While (licenceKeyCheckSum <> 4095)
licenceKeyPart1 = RandomNumber(intHighestNumber)
licenceKeyPart2 = RandomNumber(intHighestNumber)
licenceKeyPart3 = RandomNumber(intHighestNumber)
licenceKeyPart4 = RandomNumber(intHighestNumber)
licenceKeyPart5 = RandomNumber(intHighestNumber)
licenceKeyPart6 = RandomNumber(intHighestNumber)
licenceKeyCheckSum = licenceKeyPart1+licenceKeyPart2+licenceKeyPart3+licenceKeyPart4+licenceKeyPart5+licenceKeyPart6
Loop
Else
Do While (licenceKeyCheckSum Mod 65 <> 0)
licenceKeyPart1 = RandomNumber(intHighestNumber)
licenceKeyPart2 = RandomNumber(intHighestNumber)
licenceKeyPart3 = RandomNumber(intHighestNumber)
licenceKeyPart4 = RandomNumber(intHighestNumber)
licenceKeyPart5 = RandomNumber(intHighestNumber)
licenceKeyPart6 = RandomNumber(intHighestNumber)
licenceKeyCheckSum = licenceKeyPart1+licenceKeyPart2+licenceKeyPart3+licenceKeyPart4+licenceKeyPart5+licenceKeyPart6
Loop
End If
licenceKey = licenceKeyPart1&"-"&licenceKeyPart2&"-"&licenceKeyPart3&"-"&licenceKeyPart4&"-"&licenceKeyPart5&"-"&licenceKeyPart6
Function RandomNumber(intHighestNumber)
Do While RandomNumber < 100
Randomize
RandomNumber = Int(Rnd * intHighestNumber) + 1
Loop
End Function
Function RandomNumber2(intHighestNumber)
Randomize
RandomNumber2 = Int(Rnd * intHighestNumber) + 1
End Function
'WScript.Echo keyType
WScript.Echo licenceKey
Set licenceKey = Nothing
Set licenceKeyCheckSum = Nothing
Set intHighestNumber = Nothing
Set licenceKeyPart1 = Nothing
Set licenceKeyPart2 = Nothing
Set licenceKeyPart3 = Nothing
Set licenceKeyPart4 = Nothing
Set licenceKeyPart5 = Nothing
Set licenceKeyPart6 = Nothing
Set keyType = Nothing
int main(void)
{
int tuples[6];
int i, j,k,generating=TRUE;
for (i=0;i<6;i++)
tuples[i] = 100;
while(generating)
{
for (j=0,k=0;j<6;j++)
k += tuples[j];
if ( (k==4095) || ((k % 65)==0))
{
for (j=0;j<6;j++)
{
printf("%.3d", tuples[5-j]);
if (j!=5)
printf("-");
}
printf("\r\n");
}
for (j=0;j<6;j++)
{
if (tuples[j]<=999)
{
tuples[j]++;
if (tuples[j]>999)
{
tuples[j]=100;
if (j==5)
generating = FALSE;
}
else
break;
}
else
break;
}
}
}