Data update
This commit is contained in:
parent
61b93a2cd1
commit
5af6d93694
858 changed files with 20572 additions and 2082 deletions
47
Task/Chaocipher/FutureBasic/chaocipher.basic
Normal file
47
Task/Chaocipher/FutureBasic/chaocipher.basic
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
begin enum
|
||||
_encrypt
|
||||
_decrypt
|
||||
end enum
|
||||
|
||||
local fn chaocipher(orig as str255, action as byte, show as bool) as str255
|
||||
str255 leftStr, rightStr, out
|
||||
short i, index
|
||||
leftStr = "HXUCZVAMDSLKPEFJRIGTWOBNYQ"
|
||||
rightStr = "PTLNBQDEOYSFAVZKGJRIHWXUMC"
|
||||
orig = ucase$(orig)
|
||||
out[0] = orig[0]
|
||||
|
||||
if show then print:print,"The left and right alphabets during encryption are:":print
|
||||
|
||||
for i = 1 to orig[0]
|
||||
if show then print ,leftStr,,rightStr
|
||||
if action == _encrypt
|
||||
index = instr$(0, rightStr, mid$(orig, i, 1))
|
||||
out[i] = leftStr[index]
|
||||
else
|
||||
index = instr$(0, leftStr, mid$(orig, i, 1))
|
||||
out[i] = rightStr[index]
|
||||
end if
|
||||
|
||||
//leftStr permutation
|
||||
leftStr = mid$(leftStr, index) + left$(leftStr, index-1)
|
||||
leftStr = left$(leftStr, 1) + mid$(leftStr, 3, 12) + mid$(leftStr, 2, 1) + mid$(leftStr, 15)
|
||||
|
||||
//rightStr permutation
|
||||
rightStr = mid$(rightStr, index+1) + left$(rightStr, index-1) + mid$(rightStr, index, 1)
|
||||
rightStr = left$(rightStr, 2) + mid$(rightStr, 4, 11) + mid$(rightStr, 3, 1) + mid$(rightStr, 15)
|
||||
next
|
||||
|
||||
end fn = out
|
||||
|
||||
|
||||
str255 original, encrypted, decrypted
|
||||
original = "WellDoneIsBetterThanWellSaid"
|
||||
|
||||
window 1, @"Chaocipher", ( 0, 0, 475, 550 )
|
||||
print : print ,"The original text is: """; original; """"
|
||||
encrypted = fn chaocipher(original, _encrypt, yes)
|
||||
print : print ,"The encrypted text is: """; encrypted; """"
|
||||
decrypted = fn chaocipher(encrypted, _decrypt, no)
|
||||
print : print ,"The decrypted text is: """; decrypted; """"
|
||||
handleevents
|
||||
Loading…
Add table
Add a link
Reference in a new issue