Hi,

Wie kan me in de goede richting sturen? ik wil teksten encrypteren maar moet ze ook kunnen decrypteren. Dit met een paswoord en eventueel een beetje zout(salt :))

Dit is niet voor paswoorden. hier doe ik gewoon een vergelijking met de geëncrypteerde tekst.

Jan

Dit met een paswoord en eventueel een beetje zout(salt :))

Dit is niet voor paswoorden.

Wat is het nou? Want wachtwoorden zou je NOOIT moeten kunnen decrypten. Je vergelijkt dan de hash met de geëncrypte invoer. Uiteraard met een salt, en dan is [php]password_hash[/php] en [php]password_verify[/php] de beste oplossing.
En ik dacht dat ik duidelijk was :)
Ik wil tekst kunnen omzetten. maar met een paswoord en terug kunnen terugkeren naar de oorspronkelijke tekst.
Met http://php.net/manual/en/function.base64-decode.php kan ik geen eigenpaswoord gebruiken. dat wil ik dus wel.
met base64-decode of encode kan iedereen de tekst terug draaien ook als ze het paswoord niet weten.

ik zoek dus niets om paswoorden te beveiligen maar om tekst te beveiligen en ook terug leesbaar te maken.

Ik ga eens kijken of ik iets kan met openssl-encrypt. Deze had ik op mijn zoektocht niet tegen gekomen.

Jan
Ik zou de term 'password' dan vervangen door sleutel. Een password zie ik meer als een geheim woord om ergens toegang tot te krijgen, en niet om een bepaald geheim geheim woord weer te ontrafelen.
Dit werkt perfect als je een string wilt encrypten en later weer wilt decrypten.


<?php
function dec_enc($action, $string) {
    $output = false;
 
    $encrypt_method = "AES-256-CBC";
    $secret_key = 'This is my secret key';
    $secret_iv = 'This is my secret iv';
 
    // hash
    $key = hash('sha256', $secret_key);
    
    // iv - encrypt method AES-256-CBC expects 16 bytes - else you will get a warning
    $iv = substr(hash('sha256', $secret_iv), 0, 16);
 
    if( $action == 'encrypt' ) {
        $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
        $output = base64_encode($output);
    }
    else if( $action == 'decrypt' ){
        $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
    }
 
    return $output;
}
?>


Je kan zelf een secret key en Initialization vector kiezen.

Bron
Vanwaar die base64_encode/_decode? Is dit om te zorgen dat je alles zorgeloos kunt transporteren? Dat is dan toch een zorg die buiten deze functionaliteit valt? Zou ik niet opnemen in deze functie.

Je kan zelf een secret key en Initialization vector kiezen.

Maak hier parameters van ;).

Reageren