b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

mssql2008 base64_sqlserver2008安装环境_mssqlserver教程(2)

电脑杂谈  发布时间:2017-06-19 04:06:17  来源:网络整理

至此,搞定!

为了验证上面我的说法,可以看一下Oracle中,qaz123在不同编码下的代码点

SQL> select 'UTF8',dump('qaz123') from dual
  2  union all
  3  select 'UTF16BE',dump(N'qaz123') from dual
  4  union all
  5  select 'UTF16LE', dump(convert('qaz123','AL16UTF16LE')) from dual
  6  ;
 
'UTF8'  DUMP('QAZ123')
------- ----------------------------------------------
UTF8    Typ=96 Len=6: 113,97,122,49,50,51
UTF16BE Typ=96 Len=12: 0,113,0,97,0,122,0,49,0,50,0,51
UTF16LE Typ=1 Len=12: 113,0,97,0,122,0,49,0,50,0,51,0

下面给出Oracle和SQL Server下的相关函数实现代码

Oracle:

创建MD5函数

CREATE OR REPLACE FUNCTION GET_MD5
( p_str in varchar2)
RETURN varchar2 IS
BEGIN 
RETURN Utl_Raw.Cast_To_Raw(DBMS_OBFUSCATION_TOOLKIT.MD5(input_string => lower(P_Str)));
END;

调用转换成Base64

select utl_raw.cast_to_varchar2(utl_encode.base64_encode(GET_MD5(convert('qaz123','AL16UTF16LE')))) from dual;

SQL Server:

从SQLServer 2005开始,其自带了hashbytes函数用于生成字符串的Hash,所以MD5这一步就可以直接采用现有的函数了。

至于转换成Base64,系统并没有提供相关函数,不过我们有变通的方法,原理是SQL Server使用FOR XML 生成xml 实例时,binary 数据使用base64 编码

函数如下:

create function f_ToBase64
(@bin varbinary(max))
returns varchar(max)
as begin
return cast(N'' as xml).value('xs:base64Binary(xs:hexBinary(sql:variable("@bin")))', 'varchar(max)')
end

最终调用:

select dbo.f_ToBase64(hashbytes('MD5',convert(NVARCHAR,'qaz123'))) 

特别需要注意红色部分,这是为了和C#代码逻辑保持一致。mssql2008 base64


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-53637-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...