Using PBKDF2 SHA512 data in other languages
<p>I'm using pbkdf2_sha512 as the hashing algorithm in a Flask web app.</p>

<p>I don't want to lose my user data in my database. Can I use same hashing algorithm in the future if I want to change the backend programming language to any other language (like node.js, PHP, Ruby, etc)?</p>

<p>Will the same password hashing work for other programming languages?</p>

<p><a href="https://en.wikipedia.org/wiki/PBKDF2" rel="nofollow">PBKDF2</a> is a <em>standard</em>; in this case configured to use SHA256 as the hashing function. You'll find implementations for the standard in most programming languages. It is not unique to Flask or Python.</p>

<p>So yes, you can calculate the hash from any other language and test against the stored hash.</p>

<p>Example implementations in other languages:</p>

<ul>
<li>node.js: <a href="https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback" rel="nofollow"><code>crypto.pbkdf2(password, salt, iterations, keylen, digest, callback)</code></a></li>
<li>PHP: <a href="http://php.net/hash-pbkdf2" rel="nofollow"><code>string hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = false ]] )</code></a></li>
<li>Ruby: <a href="http://www.ruby-doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/PKCS5.html#method-c-pbkdf2_hmac_sha1" rel="nofollow"><code>pbkdf2_hmac(pass, salt, iter, keylen, digest)</code></a></li>
</ul>

python postgresql flask pbkdf2