encrypter and decrypter complete