示例#1
2
 def test_hideBit5(self):
     b = byte_tools.hide_data(42, 2, 4)
     self.assertEqual(34, b)
示例#2
1
 def hide(self, bin_data, order_num=0, bad_bits_num=1):
     bin_data = pack(">L", len(bin_data)) + bin_data
     if len(bin_data) > self.container_space(bad_bits_num):
         raise ContainerException("Too much data to hide. {}: but max={}".format(
             len(bin_data), self.container_space())
         )
     order_inspector = ORDER_INSPECTORS[order_num](self.container_space())
     sample_id = 0
     pos = 0
     hidden_data_byte = 0
     bits_data = byte_tools.to_bits(bin_data)
     for i in range(len(bits_data)):
         hidden_data_byte = hidden_data_byte * 2 + bits_data[i]
         pos += 1
         if (pos == bad_bits_num) or (i + 1 == len(bits_data)):
             if i + 1 == len(bits_data) and not (pos == bad_bits_num):
                 while pos != bad_bits_num:
                     hidden_data_byte *= 2
                     pos += 1
             self[sample_id] = byte_tools.hide_data(self[sample_id], hidden_data_byte, bad_bits_num)
             pos = 0
             hidden_data_byte = 0
             sample_id = order_inspector.next()
示例#3
1
 def test_hideBit2(self):
     b = byte_tools.hide_data(0, 0)
     self.assertEqual(0, b)
示例#4
0
 def test_reveal(self):
     byte = 234213
     hidden_data = 9
     number_of_bad_bits = 15
     bad_byte = byte_tools.hide_data(byte, hidden_data, number_of_bad_bits)
     released_data = byte_tools.reveal_data(bad_byte, number_of_bad_bits)
     self.assertEqual(hidden_data, released_data)
示例#5
0
 def test_hideBit4(self):
     b = byte_tools.hide_data(567, 5)
     self.assertEqual(565, b)
示例#6
0
 def test_hideBit3(self):
     b = byte_tools.hide_data(250, 1)
     self.assertEqual(251, b)
示例#7
0
 def test_hideBit1(self):
     b = byte_tools.hide_data(0, 1)
     self.assertEqual(1, b)