亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

同樣的字符串,.net用SHA1加密出來的結果和網站的加密結果不同?

同樣的字符串,.net用SHA1加密出來的結果和網站的加密結果不同?

回首憶惘然 2019-04-04 11:07:32
同樣的字符串,.net用SHA1加密出來的結果和網站的加密結果不同
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

在SQL Server 2005下自帶的函數HashBytes() ,此函數是微軟在SQL Server 2005中提供的,可以用來計算一個字符串的MD5和SHA1值,使用方法如下:
--獲取123456的MD5加密
select hashbytes('MD5', '123456') ;
--獲取123456的SHA1加密串
select hashbytes('SHA1', '123456') ;
有了這個函數可以在SQL Server中為字符串進行加密,但是HashBytes() 函數的返回結果是VarBinary類型(以 0x 開頭 16 進制形式的二進制數據)。通常情況下,我們需要的都是字符串型的數據,很多人首先想到的可能就是用CAST或Convert函數將VarBinary轉換為VarChar,但這樣轉換后的結果會是亂碼,正確轉換VarBinary可變長度二進制型數據到16進制字符串應該使用系統內置函數sys.fn_VarBinToHexStr()或sys.fn_SqlVarBaseToStr(只在sqlserver2005以后的有),如下所示:

select sys.fn_VarBinToHexStr(hashbytes('MD5', '123456'))
然后就可以截取需要的部分:

set right(sys.fn_VarBinToHexStr(hashbytes('MD5','123456')),32)
MD5加密串。

查看完整回答
反對 回復 2019-04-12
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

MD5 加密 貌似沒有語言界限。
1 你注意搞清楚 加密了幾次 密文是區分大小寫的
2 搞清楚 他們是不是 純MD5加密 還是 加密后 只取了部分密文
3 明文中兩邊不要有空格 兩種語言對空個處理可能有所不同

查看完整回答
反對 回復 2019-04-12
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

Java 已經實現了 SHA-256 和 SHA-512 兩種 Hash 算法
利用 java.security.MessageDigest 調用已經集成的 Hash 算法
創建 Encrypt 對象,并調用 SHA256 或者 SHA512 并傳入要加密的文本信息,分別得到 SHA-256 或 SHA-512 兩種被加密的 hash 串。
若要改為 MD5 算法,修改傳入參數 strType 為 "MD5" 即可得到 MD5 加密功能。

[java] view plain copy
package test;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class Encrypt
{

/**
* 傳入文本內容,返回 SHA-256 串
*



查看完整回答
反對 回復 2019-04-12
  • 3 回答
  • 0 關注
  • 1847 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號