[英]What's the equivalent SQL code for this hashing code in Java (Scala)
我有以下Scala代碼對用戶密碼進行哈希處理:
val digest = MessageDigest.getInstance("SHA-256")
val hash = new String(digest.digest (password.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8).getBytes
我想在使用SQL的PostgresSQL服務器中執行相同的操作。
我努力了
digest(password, 'sha256')
沒用,我猜這是因為java中的getBytes
調用,我們正在消化字符串的字節,而不是字符串本身(如果有意義的話!)
Postgress SQL的getBytes
等於什么? 如果存在?
謝謝。
上下文我只是想進行一個查詢,該查詢將手動插入用戶以便於測試,它正在插入,但我無法登錄。查詢和scala代碼生成的摘要不同。
val hash = new String(digest.digest (password.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8).getBytes
錯了 您正在正確地對密碼進行哈希處理,然后由於某種原因將字節轉換為字符串...只是將其再次轉換為字節。 那是不必要的,愚蠢的,並且很可能會破壞事物。
val hash = digest.digest (password.getBytes(StandardCharsets.UTF_8))
您的哈希值以字節為單位。
要模擬損壞的代碼,請嘗試convert_from(digest(password, 'sha256'), 'UTF8')::bytea
,看看是否得到相同的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.