Skip to content

Instantly share code, notes, and snippets.

@loriculberson
Created December 19, 2014 16:24
Show Gist options
  • Select an option

  • Save loriculberson/56351f877496d7752d6d to your computer and use it in GitHub Desktop.

Select an option

Save loriculberson/56351f877496d7752d6d to your computer and use it in GitHub Desktop.
phrase = "This is my secret message."
alpha_values =
{
"A"=>1, "B"=>2, "C"=>3, "D"=>4,
"E"=>5, "F"=>6, "G"=>7, "H"=>8,
"I"=>9, "J"=>10, "K"=>11, "L"=>12,
"M"=>13, "N"=>14, "O"=>15, "P"=>16,
"Q"=>17, "R"=>18, "S"=>19, "T"=>20,
"U"=>21, "V"=>22, "W"=>23, "X"=>24,
"Y"=>25, "Z"=>26, " "=> " ", "."=> ".",
","=>","
}
code = 13
positions = phrase.upcase.split('').map {|position| alpha_values[position] || position}
encrypted_phrase = positions.map do |value|
if value.is_a?(Fixnum)
new_value = (value + code) % 26 # change these back into letters
if new_value == 0
new_value = 26
end
alpha_values.invert[new_value]
else
value
end
end
encrypted_phrase.join.capitalize
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment