Class: Obfuscurity::Baffler

Inherits:
Object
  • Object
show all
Defined in:
lib/obfuscurity.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Baffler

Returns a new instance of Baffler.



7
8
9
10
11
# File 'lib/obfuscurity.rb', line 7

def initialize(params = {})
  @seed = params.fetch(:seed, 839712541)
  @max_bits = params.fetch(:max_bits, 30)
  check_size_of_number_space(@seed)
end

Instance Method Details

#clarify(number) ⇒ Object



20
21
22
23
# File 'lib/obfuscurity.rb', line 20

def clarify(number)
  bits = number_to_bits(number ^ @seed)
  bits_to_number(bits.reverse)
end

#obfuscate(number) ⇒ Object



13
14
15
16
17
18
# File 'lib/obfuscurity.rb', line 13

def obfuscate(number)
  check_size_of_number_space(number)
  seed_bits = number_to_bits(@seed)
  xor_bits = (0 ... seed_bits.size).map { |i| number[i] ^ seed_bits[i] }
  bits_to_number(xor_bits)
end