Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 17:05   #1
RAZOR1703
Пользователь
 
Регистрация: 15.12.2010
Сообщений: 74
По умолчанию [Ассемблер] Программа симметричного (или не очень) шифрования

Здравствуйте, товарищи программисты.
Пытаюсь делать курсовую по Асму, все немного печально. Задание - программа симметричного шифрования и дешифрования сообщения (с одним ключом). Само симм. шифрование я даже не представляю, как реализовать. Я даже с трудом понимаю, что это такое. Спросил у преподавателя - он разрешил упростить программу, но сказал, что оценка будет ниже.
Вобщем, я начал лепить программку шифрования через XOR (единственное, что до меня дошло ) и опять же столкнулся с проблемой. Я ввожу строку, считаю кол-во символов (для счетчика), начинаю цикл, применяя XOR к каждому символу по отдельности и записывая в esi. И все вроде бы проходит нормально, но вот дела: я не знаю как вывести полученный результат на экран. И вот на этом моменте я вспомнил про ваш сайт
Код:
.686
	.model flat,stdcall
	option casemap:none
	include C:\masm32\include\windows.inc
	include C:\masm32\include\masm32.inc
	include C:\masm32\include\kernel32.inc
	include C:\masm32\include\fpu.inc
	include C:\masm32\include\user32.inc
	includelib C:\masm32\lib\masm32.lib
	includelib C:\masm32\lib\user32.lib
	includelib C:\masm32\lib\kernel32.lib
	includelib C:\masm32\lib\fpu.lib
	BUFMAX equ 128
	KEY equ 213
	BSIZE equ 30
	.data
	inst db BUFMAX dup(?)
	str1 db "Vvedite soobschenie: ",0
	str2 db "Зашифрованный текст: ",0
	str3 db "Расшифрованный текст: ",0
	strsize DWORD ?
	stdout DWORD ?
	cWritten DWORD ?
	stdin DWORD ?
	cRead DWORD ?
	ec db BSIZE dup(0)
	buf db BSIZE dup(0)
	ifmt db "%u",0
	.code 
	_st:
	invoke GetStdHandle, STD_OUTPUT_HANDLE
		mov stdout, eax
	invoke GetStdHandle, STD_INPUT_HANDLE
		mov stdin, eax
	invoke WriteConsoleA,\
		stdout, ADDR str1, 21, 0, 0
	NewLine:
	invoke ReadConsole, stdin, ADDR inst, BUFMAX, ADDR cRead, NULL
		cmp cRead,2
		jnz NewLine
	invoke lstrlen, offset inst
	sub eax, 2

	mov ecx, eax
	xor esi,esi
	lea esi, inst
	L1:
		mov ebx,[esi]
		xor ebx,KEY
		mov [esi],ebx
		inc esi
		loop L1
	 
	invoke WriteConsoleA, stdout, esi, BUFMAX,0,0
	invoke Sleep, 10000d
	invoke ExitProcess,0
	end _st
Помогите, чем можете, пожалуйста.

А, и еще: друзья, если кому-то не составит труда поделиться кодом НАСТОЯЩЕГО симметричного шифрования, я буду очень благодарен вам.
Заранее спасибо

Последний раз редактировалось RAZOR1703; 15.12.2010 в 17:52.
RAZOR1703 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень срочно! Алгоритм шифрования DES... Regloger Помощь студентам 15 14.05.2013 17:04
Программа поиска в строке (string) самого длинного симметричного слова [Паскаль] Henkel Помощь студентам 2 14.12.2010 20:41
программа шифрования(Delphi 7) MrMoriman Помощь студентам 0 13.12.2010 11:01
[Алгоритм] Симметричного шифрования tuxx32 Помощь студентам 6 13.05.2010 09:39