Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Jednoduché šifrování a dešifrování 2

Ukázkový program Jednoduché šifrování a dešifrování textu 2 v Ruby včetně zdrojových kódů.

class String
  def encrypt(passwd)
    self.length.times do |i|
      self[i] = (self[i].ord + passwd[i % passwd.length ].ord - ("A".ord - 1)).chr
      self[i] = (self[i].ord - ("Z".ord - "A".ord + 1)).chr if (self[i].ord > "Z".ord)
    end
    return self
  end

  def decrypt(passwd)
    self.length.times do |i|
      self[i] = (self[i].ord - (passwd[i % passwd.length ].ord - ("A".ord - 1))).chr
      self[i] = (self[i].ord + ("Z".ord - "A".ord + 1)).chr if (self[i].ord < "A".ord)
    end
    return self
  end
end


class Translator

  def input
    # zadavani vstupu
    print "Zadejte text: "
    @text = gets.upcase.strip
    print "Zadejte heslo: "
    @passwd = gets.upcase.strip
  end


  def run
    puts "Vitejte v programu sifrovani"
    puts "============================"
    option = ""
    while (!["3"].include?(option)) do
      puts "1 - sifrovat text"
      puts "2 - desifrovat text"
      puts "3 - konec"
      option = gets.strip
      case option
      when "1"
        input
        puts @text.encrypt(@passwd)
      when "2"
        input
        puts @text.decrypt(@passwd)
      end
    end
  end

end

translator = Translator.new
translator.run


 

Všechny články v sekci
Ruby
Program pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
Ještě nikdo nehodnotil, buď první!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity