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

Lua шифрование

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

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

Добавлено через 8 минут
C
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2016, 21:38
Ответы с готовыми решениями:

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

Учебник по Lua
Добрый день! Подскажите пожалуйста хороший учебник по Lua на русском или...

Парсинг lua
Здравствуйте форумчане,меня озадачило такой задачей,нужно из текста Client...

Быстродействие Lua
Мне не раз приходилось видеть, что ядро програмы написано на С++, а...

*.lua in *.exe
Кто знает как скрипт на луа компилить в исполняемый файл, подскажите, хочу...

5
ProgJ
87 / 85 / 10
Регистрация: 20.11.2008
Сообщений: 724
07.09.2016, 09:36 2
Если вы хотите, чтобы всё сделали за вас, то вам в раздел Фриланс http://www.cyberforum.ru/freelance/
0
I3I
0 / 0 / 2
Регистрация: 28.09.2014
Сообщений: 87
07.09.2016, 13:15  [ТС] 3
C
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
ProgJ
87 / 85 / 10
Регистрация: 20.11.2008
Сообщений: 724
07.09.2016, 15:26 4
а чего у вас число символов в первом файле не кратно 8?

вам нужно, читая из второго файла, заполнить таблицу соответствия
{
['10010011']='A',
['10110000']='B',
...
}
0
I3I
0 / 0 / 2
Регистрация: 28.09.2014
Сообщений: 87
07.09.2016, 21:20  [ТС] 5
в первом файле, целые числа в десятичном виде
C
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 минут
C
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
ProgJ
87 / 85 / 10
Регистрация: 20.11.2008
Сообщений: 724
08.09.2016, 08:32 6
Цитата Сообщение от I3I Посмотреть сообщение
есть ли какие-то встроенные функции для сравнения чисел v и значений таблицы, и замены v на ключ таблицы?
Если вы ищите какому ключу в таблице t соответствует значение v, и вам нужно делать это много раз, то делаете дополнительную таблицу tt, в которой меняете значение и ключ местами. Теперь ключ по v находится как tt[v]
0
08.09.2016, 08:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2016, 08:32

Парсер на lua
Тут описано как подключить и использовать и библиотеку для языка lua...

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

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


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

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

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