Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 9, 2015 21:41:21

antonKachanov
Зарегистрирован: 2015-10-09
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

Вот сам код:
SUPER_CONST = 0xDEADBEAF

def create_const(const):
power_coef = (const**15 - const**7) // const**16
nicer_power_coef = int(bin(power_coef+1)) - 1
return const**(nicer_power_coef)


def encrypt(plain_text, key):
res = “”
for char in plain_text:
chiper_char = key ^ ord(char)
res += chr(optimize(chiper_char))
sc = str(SUPER_CONST)
if sc == ‘0xDEADBEAF’:
return res
elif len(sc) and ‘-’ not in sc:
return res + res


def optimize(char):
a = 0 and (1337 or ‘one million plus one’)
for i in range(2**7):
if i % 2 == 0:
y = 0
else:
y = 2
a += y
a -= create_const(SUPER_CONST)
return char & a

def main():
key = open('key.txt').read()
key = int(key)
plain_text = open('super_duper_secret.txt').read()
cr = encrypt(plain_text, key)
open('enc.txt', ‘w’).write(cr)

if __name__ == ‘__main__’:
if __import__('os'):
main()


Можете объяснить как работает данный код. Я знаю что он шифрует сообщение. А вот подробно описать можете

Офлайн

#2 Окт. 10, 2015 01:04:05

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

antonKachanov
Оформляйте код в теги code



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Окт. 12, 2015 03:30:05

Gaberinho
Зарегистрирован: 2015-10-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

JOHN_16
antonKachanovОформляйте код в теги code
А как оформлять их?

Офлайн

#4 Окт. 12, 2015 03:38:44

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

когда вводите сообщение, слева от смайликов есть кнопочка, при нажатии которой в редактор сообщений вставляется теги code, внутри которых надо писать программный код, для того что бы он на форуме отображался корректно. Это общее поведение для всех подобных форумов.

из за того что ваше сообщение не оформленно - ваш код нельзя проверить, так как отступы потеряны



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Окт. 12, 2015 03:43:49)

Офлайн

#5 Окт. 12, 2015 03:50:09

Gaberinho
Зарегистрирован: 2015-10-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

JOHN_16

Прикреплённый файлы:
attachment enc.txt (938 байт)

Офлайн

#6 Окт. 12, 2015 03:53:08

Gaberinho
Зарегистрирован: 2015-10-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

SUPER_CONST = 0xDEADBEAF
def create_const(const):
	power_coef = (const**15 - const**7) // const**16
	nicer_power_coef = int(bin(power_coef+1)[-power_coef-1]) - 1
	return const**(nicer_power_coef)
def encrypt(plain_text, key):
	res = ""
	for char in plain_text:
		chiper_char = key ^ ord(char)
		res += chr(optimize(chiper_char))
	sc = str(SUPER_CONST)
	if sc == '0xDEADBEAF':
		return res[::-1][1337:15:6]
	elif len(sc) and '-' not in sc:
		return res[:-1][::1] + res[-1]
def optimize(char):
	a = 0 and (1337 or 'one million plus one')
	for i in range(2**7):
		if i % 2 == 0:
			y = 0
		else:
			y = 2 
		a += y
	a -= create_const(SUPER_CONST)
	return char & a
def main():
	key = open('key.txt').read()
	key = int(key)
	plain_text = open('super_duper_secret.txt').read()
	cr = encrypt(plain_text, key)
	open('enc.txt', 'w').write(cr)
if __name__ == '__main__':
	if __import__('os'):
		main()

выбирать надо пункт python при вводе тегов code

Отредактировано JOHN_16 (Окт. 12, 2015 03:57:39)

Офлайн

#7 Окт. 12, 2015 04:02:47

Gaberinho
Зарегистрирован: 2015-10-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

JOHN_16
Выводится как и написал antonKachanov, а при вводе bash тегов все отступы сохраняются
SUPER_CONST = 0xDEADBEAF
def create_const(const):
	power_coef = (const**15 - const**7) // const**16
	nicer_power_coef = int(bin(power_coef+1)[-power_coef-1]) - 1
	return const**(nicer_power_coef)
def encrypt(plain_text, key):
	res = ""
	for char in plain_text:
		chiper_char = key ^ ord(char)
		res += chr(optimize(chiper_char))
	sc = str(SUPER_CONST)
	if sc == '0xDEADBEAF':
		return res[::-1][1337:15:6]
	elif len(sc) and '-' not in sc:
		return res[:-1][::1] + res[-1]
def optimize(char):
	a = 0 and (1337 or 'one million plus one')
	for i in range(2**7):
		if i % 2 == 0:
			y = 0
		else:
			y = 2 
		a += y
	a -= create_const(SUPER_CONST)
	return char & a
def main():
	key = open('key.txt').read()
	key = int(key)
	plain_text = open('super_duper_secret.txt').read()
	cr = encrypt(plain_text, key)
	open('enc.txt', 'w').write(cr)
if __name__ == '__main__':
	if __import__('os'):
		main()

Офлайн

#8 Окт. 12, 2015 04:13:43

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

antonKachanov
я не вижу ничего особого в данном коде - все это базовые понятия языка Python. Если вы их не знаете, то надо изучать. Типичные операци это арифметические операции над числами, срезы строк, битовые операции над числами, логические операторы



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Окт. 12, 2015 04:36:31

Gaberinho
Зарегистрирован: 2015-10-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

JOHN_16
А как расшифровать зашифрованное сообщение этим кодом?

Офлайн

#10 Окт. 12, 2015 05:57:44

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите разобраться с кодом.

Для начала надо задаться вопросом, а возможно ли это?
Если посмотреть на код, то приходит на ум чт овсе это просто шутка. Ну либо это делал кто то не грамотный.

Gaberinho
elif len(sc) and ‘-’ not in sc:
это условие никогда не выполнится, потмоу что SUPER_CONST никогда не меняется
Gaberinho
res
второй срез всегда вернет пустую строку
Gaberinho
a = 0 and (1337 or ‘one million plus one’)
вот это как раз больше похоже на шутку. Ибо бессмысленное выражение
Gaberinho
def create_const(const): power_coef = (const**15 - const**7) // const**16 nicer_power_coef = int(bin(power_coef+1)) - 1 return const**(nicer_power_coef)
назначение этой функции вообще не понятна. Любое положительное число больше нуля даст в результате единицу

Ну и т.д. и т.п.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version