Tråd bedømmelse:
  • 1 Stemmer - 5 Gennemsnit
  • 1
  • 2
  • 3
  • 4
  • 5
Ruby Rail Fence Cipher kode
29-04-2015, 14:04
#1
Ruby Rail Fence Cipher kode
Jeg ved ikke om nogen kan bruge det til noget, men jeg har lavet et lille Ruby script til at kryptere tekst med. Det er brugt i den lille udfordring jeg havde lagt i følgende tråd:
Uofficiel udfordring

#!/usr/bin/env ruby
###############################################################################
## Rail Fence Cipher Tool - For underholdningens skyld.
## Fil: railfence.rb
## Rail Fence Cipher er en simpel Transposition cipher,
## hvilket betyder bogstaverne beholder deres værdi,
## men er rykket rundt i zigzag.
## Denne kryptering er også kendt under navnet Zigzag Cipher.
## Denne version danner kun to rails og er meget simpel.
###############################################################################
# Input: SOMETEXT
# $buffirst: S M T X
# $bufsecond: O E E T
# Output: SMTXOEET ($buffirst += $bufsecond)

# Globale variabler
$buffirst = "" # Buffer til rail 1
$bufsecond = "" # Buffer til rail 2

# Funktioner
def usage() # Helpscreen
puts "Rail Fence Cipher Tool v0.1"
puts "USAGE: ./railfence.rb [filename]"
end

def encrypt(filename) # Krypteringsfunktion
File.open(filename, 'r') do |file| # Åbn filen angivet i ARGV til læsning
_shifter = 1 # Sæt shifter til 1. Vi bruger denne til at skifte mellem de to rails, ved at teste om den er lige eller ulige
file.each_char do |char| # Læs filen en byte ad gangen
# Dette tilføjer et tegn til buffirst, derefter buffsecond, derefter buffirst, derefter bufsecond osv., baseret på om shifter er lige eller ulige
if (_shifter.odd?) then $buffirst = "#{$buffirst}#{char.to_s}" else $bufsecond = "#{$bufsecond}#{char.to_s}" end # Skiftevis gem et tegn fra filen i buffirst og bufsecond
_shifter += 1 # Tæl shifter 1 op. Det vil få den til at skifte mellem lige og ulige hele tiden
end
end # Dette laver en file.close automatisk. Det sker ved at filen åbnes som en del af en block i Ruby
end

# Main
if ARGV.size != 1 then # Kontroller af der er angivet et argument. Det skal være et filnavn, ellers går scriptet ned.
usage() # Udskriv helpscreen hvis der ikke er givet præcis et argument til scriptet
else
encrypt(ARGV[0]) # Scritet har modtaget et argument. Kald encrypt() med filnavnet som argument
end

puts "#{$buffirst.strip.upcase}#{$bufsecond.strip.upcase}" # Skriv de to rails til stdout som store bogstaver



Citer:root@master:~/code/ruby/railfence# ./railfence.rb
Rail Fence Cipher Tool v0.1
USAGE: ./railfence.rb [filename]

root@master:~/code/ruby/railfence# ./railfence.rb testfile.txt
N ADRIK RNGNUFRRNE,HRJGLVTE IL RPEIGOGV.DTHNLRO ALFNETASOIINCPE.HPYHCIGUD E KEE OE DODIGR A E AE NLLEKYTRNSPAE E ADE MRI EC RNPSTO IHR AP AKN.
root@master:~/code/ruby/railfence#
God fornøjelse.
---
Writing a shellcode decoder stub in assembly is like talking gibberish in such a way that it is still perfectly intelligible. - iTick
Besøg denne brugers hjemmeside Find alle beskeder fra denne bruger
Citer denne besked i et svar
« Ældre | Nyere »




User(s) browsing this thread: 1 Gæst(er)