Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 2
Регистрация: 28.09.2014
Сообщений: 87
1

Lua шифрование

06.09.2016, 21:38. Показов 3616. Ответов 5
Метки нет (Все метки)

Здравствуйте, есть такая задачка, кто-то сможет помочь? В файле содержатся целые числа в десятичном виде. Преобразовать каждое число в двоичную форму. Выполнить шифрование данных таким образом, чтобы каждые восемь двоичных символов превращались в букву латинского алфавита. Таблица соответствия кодов буквам содержится во втором файле. Предусмотреть функцию для выполнения дешифрования.

Добавлено через 8 минут
Lua
1
2
3
4
5
6
7
8
function tobin(num)
    local tmp = {}
    repeat
        tmp[#tmp+1]=num%2
        num = math.floor(num/2)
    until num==0
    return table.concat(tmp):reverse()
end
вот функция для перевода числа в двоичный вид, а как мне считать с файла все числа, и приводить их в качестве аргумента к функции ?
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.09.2016, 21:38
Ответы с готовыми решениями:

Lua наследование, lua ооп
Подскажите пожалуйста, как наследовать класс? Не получается выдаёт ошибку local car = {} --...

LUA + C++
Привет всем :) я чото не понимаю чо у меня выевляется ошибки luaavg.obj : error LNK2001:...

Ошибка lua
Всем привет Попался мне один файлик resource.car после его распаковки появилось 40 файлов с...

Lua mapping
Кто программировал карты lua отзовитись нужна помощь с работой в 3ds. Нужен специалист или помощь...

5
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
07.09.2016, 09:36 2
Если вы хотите, чтобы всё сделали за вас, то вам в раздел Фриланс https://www.cyberforum.ru/freelance/
0
0 / 0 / 2
Регистрация: 28.09.2014
Сообщений: 87
07.09.2016, 13:15  [ТС] 3
Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function tobin(num)
    local tmp = {}
    repeat
        tmp[#tmp+1]=num%2
        num = math.floor(num/2)
    until num==0
    return table.concat(tmp):reverse()
end
 
local function main()
 io.input("number.txt")
 
while true do
 
  local val = io.read("*number")
  if val == nil then break end
  local a = {}
  a = tobin(val)
  print(tostring(a))
  
  end   
 
 io.input("shfr.txt")
 
while true do
 
  local vall = io.read("*l")
  if vall == nil then break end
  print(tostring(vall))
   
end
 
--string.match (a, vall)
 
io.close("number.txt")
io.close("shfr.txt")
end
main()
как мне сравнивать числа с обеих файлов?
вот их содержание.
1001001100111
1011000010110
10000011101111
110010110111
1011111101011
1010111000001
-------------------------------
10010011 A
10110000 B
10000011 C
11001011 D
10111111 E
10101110 F
0
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
07.09.2016, 15:26 4
а чего у вас число символов в первом файле не кратно 8?

вам нужно, читая из второго файла, заполнить таблицу соответствия
{
['10010011']='A',
['10110000']='B',
...
}
0
0 / 0 / 2
Регистрация: 28.09.2014
Сообщений: 87
07.09.2016, 21:20  [ТС] 5
в первом файле, целые числа в десятичном виде
Lua
1
2
3
4
5
6
7
8
 io.input("number.txt")
while true do
  local val = io.read("*number")
  if val == nil then break end
  local a = {}
  a = tobin(val)
  print(tostring(a))
  end
затем я их передаю в функцию и делаю двоичными, а затем их нужно сравнивать с таблицей соответствия, и заменить на букву те что совпали.
И еще вопрос как эту таблицу хранить в файле, что бы с ней работать так как вы указали?

Добавлено через 4 часа 27 минут
Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function tobin(num)
    local tmp = {}
    repeat
        tmp[#tmp+1]=num%2
        num = math.floor(num/2)
    until num==0
    return table.concat(tmp):reverse()
end
 
local function main()
 io.input("number.txt")
 
while true do
 
  local val = io.read("*number")
  if val == nil then break end
  local v = {}
  v = tobin(val)
  print(tostring(v))
 end   
 
local a = {} 
io.input("shfr.txt") 
while true do
  local line = io.read("*line") 
  if line == nil then break end 
  y,x = string.match(line,"([01]+) (%a)")
                                
  a[x]=y 
end
-- отладочный вывод 
for k,v in pairs(a) do
  print("["..k.."]="..v)
end
 
 
io.close()
end
main()
вот что получилось, есть ли какие-то встроенные функции для сравнения чисел v и значений таблицы, и замены v на ключ таблицы?
0
90 / 87 / 11
Регистрация: 20.11.2008
Сообщений: 724
08.09.2016, 08:32 6
Цитата Сообщение от I3I Посмотреть сообщение
есть ли какие-то встроенные функции для сравнения чисел v и значений таблицы, и замены v на ключ таблицы?
Если вы ищите какому ключу в таблице t соответствует значение v, и вам нужно делать это много раз, то делаете дополнительную таблицу tt, в которой меняете значение и ключ местами. Теперь ключ по v находится как tt[v]
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.09.2016, 08:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Изучение Lua
Добрый день. Хочу начать изучать язык Lua но не знаю с чего начать. Может кто нибудь подскажет с...

Lua script
Расшифруйте пожалуйста

Установка Lua
Здравствуйте! Подскажите, пожалуйста как это сделать: Что бы вы могли запускать луа откуда...

Плагин на Lua
Я не программист и всего чуток разбираюсь в Lua, поэтому все манипуляции с плагином проводились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.