LINUX.ORG.RU

История изменений

Исправление LightDiver, (текущая версия) :

function alfabet (bookv)
shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	myB=string.find(shablon,bookv)
	return myB
end

function hashStr (nome)
	local i = time()
	i = i % 1000
	nome1=string.sub(nome, 1, 1)
	nome2=string.sub(nome, 2, 2)
	nome1=alfabet(nome1)
	nome2=alfabet(nome2)
	hNome=nome1*nome2
	hNome=string.sub(hNome, 1, 3)
	hNome=string.format("%03d",hNome)
	r1=string.sub(i, 1, 1)
	r2=string.sub(hNome, 1, 1)
	r3=string.sub(i, 2, 2)
	r4=string.sub(hNome, 2, 2)
	r5=string.sub(i, 3, 3)
	r6=string.sub(hNome, 3, 3)
	r=r1 .. r2 .. r3 .. r4 .. r5 .. r6
	return r
end

hsh=hashStr(sender)
testMes=mysplit(message)

if testMes[1]=="#" then
	hshStraniero1=string.sub(testMes[2],1,1)
	hshStraniero2=string.sub(testMes[2],3,3)
	hshStraniero3=string.sub(testMes[2],5,5)
	hshStraniero=hshStraniero1 .. hshStraniero2 .. hshStraniero3
end

hsh1=string.sub(hsh,1,1)
hsh2=string.sub(hsh,3,3)
hsh3=string.sub(hsh,5,5)
hsh4=hsh1 .. hsh2 .. hsh3
hshC=(math.abs(hsh-hshStraniero)

if hshC<10 then
	hshCMD="maodzedun"
else
	hshCMD="0"
end

Короче. Кажется так. Добавлю в начало команд символ #. Буду читать по нему. Если есть символ - вычисляем. Если разница между хэшами меньше 10, то команда принимается. Кажется нигде не ошибся.

Исправление LightDiver, :

function alfabet (bookv)
shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	myB=string.find(shablon,bookv)
	return myB
end

function hashStr (nome)
	local i = time()
	i = i % 1000
	nome1=string.sub(nome, 1, 1)
	nome2=string.sub(nome, 2, 2)
	nome1=alfabet(nome1)
	nome2=alfabet(nome2)
	hNome=nome1*nome2
	hNome=string.sub(hNome, 1, 3)
	hNome=string.format("%03d",hNome)
	r1=string.sub(i, 1, 1)
	r2=string.sub(hNome, 1, 1)
	r3=string.sub(i, 2, 2)
	r4=string.sub(hNome, 2, 2)
	r5=string.sub(i, 3, 3)
	r6=string.sub(hNome, 3, 3)
	r=r1 .. r2 .. r3 .. r4 .. r5 .. r6
	return r
end

hsh=hashStr(sender)
testMes=mysplit(message)

if testMes[1]=="#" then
	hshStraniero1=string.sub(testMes[2],1,1)
	hshStraniero2=string.sub(testMes[2],3,3)
	hshStraniero3=string.sub(testMes[2],5,5)
	hshStraniero=hshStraniero1 .. hshStraniero2 .. hshStraniero3
end

hsh1=string.sub(hsh,1,1)
hsh2=string.sub(hsh,3,3)
hsh3=string.sub(hsh,5,5)
hsh=hsh1 .. hsh2 .. hsh3
hshC=(math.abs(hsh-hshStraniero)

if hshC<10 then
	hsh="maodzedun"
else
	hshC="0"
end

Короче. Кажется так. Добавлю в начало команд символ #. Буду читать по нему. Если есть символ - вычисляем. Если разница между хэшами меньше 10, то команда принимается. Кажется нигде не ошибся.

Исходная версия LightDiver, :

function alfabet (bookv)
shablon="абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
	myB=string.find(shablon,bookv)
	return myB
end

function hashStr (nome)
	local i = time()
	i = string.sub(i, 8, 9)
	i = i % 1000
	nome1=string.sub(nome, 1, 1)
	nome2=string.sub(nome, 2, 2)
	nome1=alfabet(nome1)
	nome2=alfabet(nome2)
	hNome=nome1*nome2
	hNome=string.sub(hNome, 1, 3)
	hNome=string.format("%03d",hNome)
	r1=string.sub(i, 1, 1)
	r2=string.sub(hNome, 1, 1)
	r3=string.sub(i, 2, 2)
	r4=string.sub(hNome, 2, 2)
	r5=string.sub(i, 3, 3)
	r6=string.sub(hNome, 3, 3)
	r=r1 .. r2 .. r3 .. r4 .. r5 .. r6
	return r
end

hsh=hashStr(sender)
testMes=mysplit(message)

if testMes[1]=="#" then
	hshStraniero1=string.sub(testMes[2],1,1)
	hshStraniero2=string.sub(testMes[2],3,3)
	hshStraniero3=string.sub(testMes[2],5,5)
	hshStraniero=hshStraniero1 .. hshStraniero2 .. hshStraniero3
end

hsh1=string.sub(hsh,1,1)
hsh2=string.sub(hsh,3,3)
hsh3=string.sub(hsh,5,5)
hsh=hsh1 .. hsh2 .. hsh3
hshC=(math.abs(hsh-hshStraniero)

if hshC<10 then
	hsh="maodzedun"
else
	hshC="0"
end

Короче. Кажется так. Добавлю в начало команд символ #. Буду читать по нему. Если есть символ - вычисляем. Если разница между хэшами меньше 10, то команда принимается. Кажется нигде не ошибся.