c# - Validate Stored Encrypted Password in SQL Server 2012 -


in sql server run command:

select hashbytes('sha2_256', '12345678') encryptedstring 

it gives 0xef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f string output, string has 66 characters.

on same side, itried encrypt password c# code, using this:

public string getshaencryptedcode(string text) {     //sha1 sha26 = new sha1cryptoserviceprovider();     sha256 sha26 = new sha256cryptoserviceprovider();     byte[] sha256bytes = system.text.encoding.utf8.getbytes(text);     byte[] crystring = sha26.computehash(sha256bytes);     string sha256str = string.empty;     (int = 0; < crystring.length; i++)     {         sha256str += crystring[i].tostring("x");     }     return sha256str; } 

suupose, if enter same "12345678" in c# code returns me string of 62 character long, string ef797c8118f02dfb64967dd5d3f8c762348c9c63d532cc95c5ed7a898a64f. how validate encrypted string coming sql server , other string c# code in order login user login page?

your c# format string incorrect - it missing leading 0s when hex value less 10.

instead need use "x2" format string padded 2 numbers:

public string getshaencryptedcode(string text) {     //sha1 sha26 = new sha1cryptoserviceprovider();     sha256 sha26 = new sha256cryptoserviceprovider();     byte[] sha256bytes = system.text.encoding.utf8.getbytes(text);     byte[] crystring = sha26.computehash(sha256bytes);     string sha256str = string.empty;     (int = 0; < crystring.length; i++)     {         sha256str += crystring[i].tostring("x2");     }     return sha256str; } 

this correctly returns ef797c8118f02dfb649607dd5d3f8c7623048c9c063d532cc95c5ed7a898a64f , can append 0x start.

in case, should not converting values string anyway. hashbytes() , sha256.computehash() both return byte arrays, more efficient , safer compare instead. can use methods described in this answer that.

or maybe better still, assume storing password in database encrypted (aren't you...?), encrypt input value byte array in c#, pass database , use like

select * users username = @username , password = @passwordbytes


Comments

Popular posts from this blog

java - Plugin org.apache.maven.plugins:maven-install-plugin:2.4 or one of its dependencies could not be resolved -

Round ImageView Android -

How can I utilize Yahoo Weather API in android -