sql加密解密函数
if object_ID ( 'fn_ACITEncryption' ) is not null
drop function fn_ACITEncryption
字符串函数注册登录go
create function fn_ACITEncryption
(
@Str nvarchar ( 4000), -- 加密的字符串
@Flag bit = 1, --1 、加密 0 、解密
@Key nvarchar ( 50) -- 密⽂
)
returns nvarchar ( 4000) -- 這⾥可轉換成⼆進制
with Encryption
as
begin
Declare @LenStr int , @i int , @Str2 nvarchar ( 4000), @Split nvarchar (2), @LenKey int
select @Str= @Str+ 'A' , @LenStr= len ( @Str), @i= 1, @Str2= '' , @LenKey= Len ( @Key+ 'A' )- 1
while @i< @LenStr
select @Split= substring ( @Str, @i, 1),
@Split= nchar (( unicode ( @Split)+ case @Flag when 1 then unicode ( substring ( @Key+ 'A' , @i% @LenKey+ 1, 1))- 1 when 0 then 65535- unicode ( substring ( @Key+ 'A' , @i% @LenKey+ 1, 1))
else 0 end )% 65535+ cast ( @Flag as int )),
@Str2= @Str2+ @Split, @i= @i+ 1
return @Str2
end
go
select dbo. fn_ACITEncryption( N'Roy' , 1, '123' ) as 加密后字符串
select dbo. fn_ACITEncryption( N'Roy', 0, '123' ) as 解密后字符串
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论