63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# File 'lib/crypt/noise.rb', line 63
def remove_noise
noisyMessage = self
bitmapSize = noisyMessage.length / 9
actualMessageLength = bitmapSize * 8
actualMessageStart = bitmapSize
actualMessageFinish = bitmapSize + actualMessageLength - 1
actualMessage = noisyMessage[actualMessageStart..actualMessageFinish]
bitmap = []
0.upto(bitmapSize - 1) { |byte|
c = noisyMessage[byte]
0.upto(7) { |bit|
bitmap[byte * 8 + bit] = (c[bit] == 1)
}
}
clearMessage = "".force_encoding("ASCII-8BIT") 0.upto(actualMessageLength) { |pos|
meaningful = bitmap[pos]
if meaningful
clearMessage << actualMessage[pos]
end
}
return(clearMessage)
end
|