@dearname

Реализует ли этот цикл метод наименьших битов?

Реализует ли этот цикл, метод наименьших значащих битов? Те кто может пояснить, что тут происходит.
Я интерпретирую, как мы начинаем, со второго символа, потом в цикле мы каждый раз берем символ из нашего файла и дальше мы заносим в наш файл этот символ, только уже в unsigned char типе.
я правильно понимаю? Как он записывает байт в незначащие биты?
fseek(file, 0, 2);
		for(how_much_digits=0 ; ; how_much_digits++)
		{
            ch_tmp=getc(file_txt);
          
		
			if(feof(file_txt))
				break;
			fprintf(file, "%c", ch_tmp);
		}
  • Вопрос задан
  • 147 просмотров
Пригласить эксперта
Ответы на вопрос 1
bobrovskyserg
@bobrovskyserg
Да.

def hide(secret, container):
    it, res = iter(container), []
    for c in secret:
        x = ord(c)
        for _ in range(8):
            z = ord(next(it))
            if x & 1:
                z |= 1
            else:
                z &= 254
            x >>= 1
            res.append(chr(z))
    return ''.join(res)

def show(container):
    it, res = iter(container), []
    for _ in range(len(container) // 8):
        x, mask = 0, 1
        for _ in range(8):
            c = next(it)
            if ord(c) & 1:
                x |= mask
            mask <<= 1
        res.append(chr(x))
    return ''.join(res)

container = "01234567890123456789012345678901"  # Тупая строка из 32 букв
secret = "Yes!"  # Тупой секрет из 32/8 = 4 букв
s = hide(secret, container)
print(s)  # "10235476981023547788113254668900"
print(show(s))  # "Yes!"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы