sub get_magic_token { my $self=shift; my $token=LocalSites::Crypt::encrypt_string(join '|',$self->id(), $self->username(), $self->password()); return $token; } #### sub encrypt_string { my $clear_string=shift; my ($prepend, $key ) = &_secret_vals(); $key = pack( "H32", $key ); my $cipher=new Crypt::CBC( $key, 'IDEA' ); my $crypt_string=$cipher->encrypt_hex( $clear_string ); return $crypt_string; } #### sub decode_magic_token { my $self=shift; my $token=shift; return 0 unless $token; my $decrypted=LocalSites::Crypt::decrypt_string($token); my ($id,$username,$password)=split /\|/, $decrypted; return $id; } #### sub decrypt_string { my $crypt_string=shift; my ( $prepend, $key ) = &_secret_vals(); $key = pack( "H32", $key ); my $cipher=new Crypt::CBC( $key, 'IDEA' ); my $clear_string=$cipher->decrypt_hex( $crypt_string ); return $clear_string; } #### sub decode_magic_token { my $self=shift; my $token=shift; return 0 unless $token; my ($id, $username, $password); eval { my $decrypted=LocalSites::Crypt::decrypt_string($token); ($id,$username,$password)=split /\|/, $decrypted; }; if (@$) { return 0; } else { return $id; } }