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

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

為什么對于同樣的字符串str,str.GetHashCode()結果不同

為什么對于同樣的字符串str,str.GetHashCode()結果不同

慕的地8271018 2018-10-24 09:10:37
今天做了一個實驗.在x86的PC上對于一個字符串使用GetHashCode()獲取一個字符串的Hash(在PC上試驗了WinForm和Asp.Net,結果是一樣的)在Xscale CPU的WinCE上邊對于同樣的字符串也使用GetHashCode()獲取Hash(在WinCE設備上和PPC2003、WM5、WM6模擬器的模擬器上結果都相同)然后比較發現他們倆不一樣!這是為什么呢? 剛才Google了一下,有說對于同樣一個對象X86和X64平臺下GetHashCode()的結果是不一樣的。為什么不一樣沒說。我想問下為什么不一樣呢?難道跟CPU有關?Google使用關鍵字GetHashCode CPU 結果令人失望!誰能給個解釋???
查看完整描述

2 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

不要使用GetHashCode()來做類似字符串加密的事情。而是使用md5或sha1算法來做這件事。

GetHashCode()的算法甚至還會根據Framework的版本更新而變化的。

有這樣的故事,曾經有公司使用GetHashCode()來hash password,結果升級了新的.net版本,所有用戶再也登錄不上了...


查看完整回答
反對 回復 2018-10-25
?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

反編譯String的GetHashCode看了看,其中需要用到實例的指針地址來計算HashCode,估計和這個有關系。呵呵,問題挺有意思的。

查看完整回答
反對 回復 2018-10-25
  • 2 回答
  • 0 關注
  • 860 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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