class CEA
# [1] ----------------------------------------------
def initialize
@plainText_String = ''
@plainText_Decrypt_String = ''
@plainText_length_int = 0
@cea_random_key = 0
@cipherText_String = ''
@field_LIST = Array.new # ****** Array.new
@field_String = ''
@fidld_length_int = 0
end
def field_setting
for i in (65..90) # range[65, 66, 67, 68, ..., 90]
@field_LIST.push(i.chr) # ****** .push(i.chr)
end

for i in (97..122) # range[97, 98, 99, 100, ..., 122]
@field_LIST.push(i.chr) # ****** .push(i.chr)
end

@field_LIST = @field_LIST.shuffle # python shuffle
print("#{@field_LIST} \n")
@field_String =@field_LIST.join('')
@fidld_length_int = @field_String.length
print("#{@field_String} \n") # python join vs
print("[ECHO @fidld_length_int]-> #{@fidld_length_int} \n")
end
# --------------------------------------------------
# [2] ----------------------------------------------
def plaintext_Write_function
print("plaintext is ")
@plainText_String = gets.chomp.to_s
@plainText_length_int = @plainText_String.length
print("[ECHO @plainText_String]-> #{@plainText_String} \n")
print("[ECHO @plainText_length_int]-> #{@plainText_length_int} \n")
end
# --------------------------------------------------
# [3] ----------------------------------------------
def ceasar_random_key_function
@cea_random_key = rand(1...25)
print("[ECHO @cea_random_key]-> #{@cea_random_key} \n")
end
# --------------------------------------------------
# [4] ----------------------------------------------
def encrypt_ceasar_function
for i in (0...@plainText_String.length)
#print("#{@field_LIST.index(@plainText_String[i])} \n") # python find
if(@field_String.include?(@plainText_String[i]))
number_int = ( @field_LIST.index(@plainText_String[i]) + @cea_random_key )%@fidld_length_int
@cipherText_String +=@field_String[number_int]
else
@cipherText_String +=@plainText_String[i]
end
end
print("[ECHO @cipherText_String]-> #{@cipherText_String} \n")
end
# --------------------------------------------------
# [5] ----------------------------------------------
def decrypt_ceasar_function
for i in (0...@plainText_String.length)
#print("#{@field_LIST.index(@plainText_String[i])} \n") # python find
if(@field_String.include?(@cipherText_String[i]))
number_int = ( @field_LIST.index(@cipherText_String[i]) - @cea_random_key )%@fidld_length_int
@plainText_Decrypt_String +=@field_String[number_int]
else
@plainText_Decrypt_String +=@cipherText_String[i]
end
end
print("[ECHO @plainText_Decrypt_String]-> #{@plainText_Decrypt_String} \n")
end
end
#---------------------[ main_function ]---------------------
ceasar = CEA.new
ceasar.field_setting
ceasar.plaintext_Write_function
ceasar.ceasar_random_key_function
ceasar.encrypt_ceasar_function
ceasar.decrypt_ceasar_function
#-----------------------------------------------------------


'언어 > Ruby' 카테고리의 다른 글

class  (0) 2016.02.27
루비(ruby)상속 -> 상속 -> 상속  (0) 2016.02.26
class 상속  (0) 2016.02.13
class def  (0) 2016.02.13
ruby [전역변수]  (0) 2016.02.13