working encription and desencription