在sql中使用了 hashbytes 函式

2022-08-01 13:24:13 字數 871 閱讀 1653

在做專案的時候,在sql中使用了hashbytes函式,運用md5演算法去加密一密碼。**如下

declare @pswnvarchar(20)

set @psw = 'admin'

select hashbytes('md5',@psw)

輸出結果:0x19a2854144b63a8f7617a6f225019b12 前面的 0x 是16進製制的意思。

現在改變一下變數@psw的型別

declare @pswvarchar(20)

set @psw = 'admin'

select hashbytes('md5',@psw)

輸出結果:0x21232f297a57a5a743894a0e4a801fc3

資料型別的不同得到了不同結果。

總結:實際上,使用nvarchar、varchar、nchar、char型別,進行加密的,得到結果都是不同的。

原因是:這些變數的實際儲存大小都是不同的。

額外知識:

varchar(n)

長度為 n 個位元組的可變長度且非 unicode 的字元資料。n 必須是乙個介於 1 和 8,000 之間的數值。儲存大小為輸入資料的位元組的實際長度,而不是 n 個位元組。

nvarchar(n)

包含 n 個字元的可變長度 unicode 字元資料。n 的值必須介於 1 與 4,000 之間。位元組的儲存大小是所輸入字元個數的兩倍。

char:

固定長度的非 unicode 字元資料,最大長度為 8,000 個字元。

nchar:

固定長度的 unicode 資料,最大長度為 4,000 個字元。

在pandas中使用sql

from pandasql import sqldf 查詢記憶體中的pandas資料框 pysqldf lambda q sqldf q,globals 匯入模組,自帶資料,尋找pandas資料框 from pandasql import sqldf,load meat,load births py...

在Sql中使用Try Catch

原文 在sql中使用try catch 今天在寫sql中出現了!我想在sql使用trycatch吧 哎.但是語法又記不住了 那就清楚我們的google大師吧 嘿,網上關於在sql中使用try catch的還有真不少的文章 閒話就少了 今天記錄下來以便下次使時查閱!建立錯誤日誌表 create tab...

在Struts中使用了Log4j

今天在學習log4j中走了不少彎路,好在學到不少新東西。log4j學習筆記 http blog.csdn.maxway archive 2005 01 23 264440.aspx 在struts中使用log4j,簡單說就是下面2步,可憐我開始費了半天勁啊,又是servlet又是配web.xml的 ...