Version 4 of Simple encryption

Updated 2007-05-18 16:42:16 by HJG

 # crypt1.tcl - Simple Encryption
 #  (Should the length of the string be veiled?)
 # 12.02.2007 © M.Hoffmann

 package provide crypt1 0.1
 package require rc4; # tcllib; für Kennwortschlüsselung

 namespace eval crypt1 {
    variable key [binary format H* 83840200ffeb0e8db360068a02c381c4e8435f5ee9]

    proc encrypt in {
         return [rc4::rc4 -hex -key $::crypt1::key                   $in ]
    }
    proc decrypt in {
         return [rc4::rc4      -key $::crypt1::key [binary format H* $in]]
    }
    namespace export *
 }

 # crypt1_test.tcl - Simple Encryption Tests
 # 12.02.2007 © M.Hoffmann

 lappend auto_path [pwd];
 package require crypt1;

 namespace import crypt1::*

 puts "Key (empty = default):"
 gets stdin key
 if {[string length $key]} {
    set ::crypt1::key $key
 }
 puts "Key: $::crypt1::key"

 puts "String to encrypt:"
 gets stdin str
 puts "String: '$str'"

 set eStr [encrypt $str]
 puts "Ecrypted String: '$eStr'"

 puts "And this string decrypted again: '[decrypt $eStr]'"

Questions to myself:

  • Is this safe enough?

Category Cryptography