1.前言。
如题,编解码格式都为gbk。编码可以不用函数。直接用for xml 。如:
SELECT (SELECT CONVERT(varbinary(max), '分为服务') FOR XML PATH(''), TYPE).value('/', 'nvarchar(max)')
2.解码。
CREATE FUNCTION dbo.base64_decode
(
@encoded_text varchar(max)
)
RETURNS varbinary(max)
AS
BEGIN
DECLARE
@output varbinary(max),
@block_start int,
@encoded_length int,
@decoded_length int,
@mapr binary(122)
IF LEN(@encoded_text) & 3 > 0
OR @encoded_text LIKE '%[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=]%' COLLATE Latin1_General_Bin
RETURN NULL
SET @output = 0x
-- The nth byte of @mapr contains the base64 value of the character with an ASCII value of n.
-- eg. 65th byte = 0x00 = 0 = value of 'A'
SET @mapr =
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF -- 1-33
+ 0xFFFFFFFFFFFFFFFFFFFF3EFFFFFF3F3435363738393A3B3C3DFFFFFF00FFFFFF -- 33-64
+ 0x000102030405060708090A0B0C0D0E0F10111213141516171819FFFFFFFFFFFF -- 65-96
+ 0x1A1B1C1D1E1F202122232425262728292A2B2C2D2E2F30313233 -- 97-122
--get the number of blocks to be decoded
SET @encoded_length = LEN(@encoded_text)
SET @decoded_length = @encoded_length / 4 * 3
--for each block
SET @block_start = 1
WHILE @block_start < @encoded_length
BEGIN
--decode the block and add to output
--BINARY values between 1 and 4 bytes can be implicitly cast to INT
SET @output = @output +
CAST(CAST(
SUBSTRING(@mapr, ASCII(SUBSTRING(@encoded_text, @block_start , 1)), 1) * 262144
+ SUBSTRING(@mapr, ASCII(SUBSTRING(@encoded_text, @block_start + 1, 1)), 1) * 4096
+ SUBSTRING(@mapr, ASCII(SUBSTRING(@encoded_text, @block_start + 2, 1)), 1) * 64
+ SUBSTRING(@mapr, ASCII(SUBSTRING(@encoded_text, @block_start + 3, 1)), 1)
AS int) AS binary(3))
SET @block_start = @block_start + 4
END
IF RIGHT(@encoded_text, 2) = '=='
SET @decoded_length = @decoded_length - 2
ELSE IF RIGHT(@encoded_text, 1) = '='
SET @decoded_length = @decoded_length - 1
RETURN SUBSTRING(@output, 1, @decoded_length)
END
测试:select convert(varchar(2000),dbo.base64_decode('t9bOqrf+zvE=') )
测试结果为:分为服务
3.注意事项。
(1)编解码用utf-8毫无意义,以上都是针对gbk,utf-8的可以在网上找下,utf-8的和gbk的编解码方式不同。
分享到:
相关推荐
完美支持中文 base64 编码与解码 目前速度最快 效率最高的编码与解码
Base64编解码 支持中文base64编码,支持二维码编码 支持语言:English (United States),中文 (简体)
VB C# 图片 文字 加密 解密 base64VB C# 图片 文字 加密 解密 base64VB C# 图片 文字 加密 解密 base64
Cain4.9中文版,绝对是中文版是一个可以破解屏保、PWL密码、共享密码、缓存口令、远程共享口令、SMB口令、支持VNC口令解码、Cisco Type-7口令解码、Base64口令解码、SQL Server 7.0/2000口令解码、Remote Desktop...
这是一个可以破解屏保、PWL密码、共享密码、缓存口令、远程共享口令、SMB口令、支持VNC口令解码、 Cisco Type-7口令解码、Base64口令解码、SQL Server 7.0/2000口令解码、Remote Desktop口令解码、Access Database...
这是一个可以破解屏保、PWL密码、共享密码、缓存口令、远程共享口令、SMB口令、支持VNC口令解码、Cisco Type-7口令解码、Base64口令解码、SQL Server 7.0/2000口令解码、Remote Desktop口令解码、Access Database...
这是一个可以破解屏保、PWL密码、共享密码、缓存口令、远程共享口令、SMB口令、支持VNC口令解码、Cisco Type-7口令解码、Base64口令解码、SQL Server 7.0/2000口令解码、Remote Desktop口令解码、Access Database...
屏保、PWL密码、共享密码、缓存口令、远程共享口令、SMB口令、支持VNC口令解码、Cisco Type-7口令解码、Base64口令解码、SQL Server 7.0/2000口令解码、Remote Desktop口令解码、Access Database口令解码、Cisco PIX...
1、base64解码.txt 2、行转列.txt 3、列转行.txt 4、BULK INSERT.txt 5、双色球.txt 6、删除完全重复数据.txt 7、快速备份.txt 8、计算table的空间使用量.txt 9、分割sql.txt 10、导出Html.txt 11、top m n.txt 12、...
数据仓库建模技术.pdf 在数据库中实现base64编码和解码.doc 触发器使用教程和命名规范.doc TransactSQL.doc Schema常用脚本.doc rsultset.doc oracle傻瓜手册 ORACLE 中存储过程定期分割表.doc ORACLE 物理文件大小...
//获得当前网段内的SQLSERVER服务器列表 function string GetSQLServerList() library 'extlib.dll' ALIAS FOR "GetSQLServerList;Ansi" //base64编码 function Integer Base64EnCode(string as_code,string Code...
常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器...
BASE64编解码模块.ec 系统后台服务.ec 易容大师.ec 保证显示.ec 注册热键(支持多热键).ec DIY热键框模块.ec 代码编辑器部分模块.ec Sqlite数据库加强.ec 自解压制作.ec 注册热键_支持多热键(20050816).ec 操作外部...
常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器(可设置...
常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器...
常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器...
Base64编解码 Bios信息 BMP滤镜模块 BoyChong-神2多方式取IP模块 BoyChong专用常用模块2.0 保存图片1.0 本土化易模块 保证显示 比较大小 编辑标准格式公文2.0 编辑框辅助功能 编码转换大全 变速模块 冰川...
常用加解密、编解码(DES、MD5、SHA、BASE64) 批量提取文本,支持正则表达式,可将HTML等文件中指定内容存入数据库 批量查找替换,支持正则表达式 批量文件、文件夹改名,支持正则表达式 正则表达式测试器...