Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def letterconv(letter)
- larr = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
- narr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
- i = 0
- while i < larr.length
- if letter == larr[i]
- return narr[i]
- end
- i += 1
- end
- end
- def gen_key_string(key,istr)
- istr = istr.gsub(" ",'')
- key = key.gsub(" ",'')
- istr = istr.upcase
- key = key.upcase
- karr = key.split(//)
- nkarr = []
- p = 0
- while nkarr.length < istr.length
- p = 0
- while p < karr.length
- if nkarr.length == istr.length
- break
- else
- nkarr << karr[p]
- p += 1
- end
- end
- end
- return nkarr
- end
- def strconv(strarr)
- narr = []
- i = 0
- while i < strarr.length
- narr << letterconv(strarr[i])
- i += 1
- end
- return narr
- end
- def stradd(strarr1,strarr2)
- i = 0
- narr = []
- while i < strarr1.length
- narr << strarr1[i] + strarr2[i]
- i += 1
- end
- return narr
- end
- def strsubt(strarr1,strarr2)
- i = 0
- narr = []
- while i < strarr1.length
- narr << strarr1[i].to_i - strarr2[i].to_i
- i += 1
- end
- return narr
- end
- def strshort(strarr)
- i = 0
- narr = []
- while i < strarr.length
- bit = strarr[i]
- if bit > 26
- bit = bit - 26
- narr << bit
- else
- narr << bit
- end
- i += 1
- end
- return narr
- end
- def strshort2(strarr)
- i = 0
- narr = []
- while i < strarr.length
- bit = strarr[i]
- if bit < 0
- narr << 26 + bit
- else
- narr << bit
- end
- i += 1
- end
- return narr
- end
- def numconv(num)
- larr = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
- narr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
- i = 0
- while i < narr.length
- if num == narr[i]
- return larr[i]
- end
- i += 1
- end
- end
- def strconv2(strarr)
- narr = []
- i = 0
- while i < strarr.length
- narr << numconv(strarr[i])
- i += 1
- end
- return narr
- end
- def encrypt(str,key)
- osstr = str.upcase.gsub(" ","").split(//)
- narr = gen_key_string(key,str)
- nosstr = strconv(osstr)
- nnarr = strconv(narr)
- narr3 = stradd(nosstr,nnarr)
- narr4 = strshort(narr3)
- narr5 = strconv2(narr4)
- return narr5.join()
- end
- def decrypt(encrypted_string,key)
- variable_arr = encrypted_string.upcase.gsub(" ","").split(//)
- print variable_arr
- puts
- variable_key = gen_key_string(key,encrypted_string)
- variable_arr = strconv(variable_arr)
- variable_key = strconv(variable_key)
- new_number_array = strsubt(variable_arr,variable_key)
- new_number_array = strshort2(new_number_array)
- output_array = strconv2(new_number_array)
- return output_array.join
- end
- ostr = "this is a complex string"
- key = "hello world"
- ostr2 = encrypt(ostr,key)
- puts decrypt(ostr2,key)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement