create view v_rand

as

select c=unicode(cast(round(rand()*255,0) as tinyint))

Go

create function f_jmstr

(

@str varchar(8000),

@type bit

)

returns varchar(8000)

/*

*参数说明

*str:要加密的字符串或已经加密后的字符

*type:操作类型--0加密--解密

*返回值说明

*当操作类型为加密时(type--0):返回为加密后的str,即存放于数据库中的字符串

*当操作类型为解密时(type--1):返回为实际字符串,即加密字符串解密后的原来字符串

*/

As

begin

declare @re varchar(8000)--返回值

declare @c int--加密字符

declare @i int

/*

*加密方法为原字符异或一个随机ASCII字符

*/

if @type=0--加密

begin

select @c=c,@re='',@i=len(@str) from v_rand

while @i>0

select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re

,@i=@i-1

set @re=@re+nchar(@c)

end

else--解密

begin

select @i=len(@str)-1,@c=unicode(substring(@str,@i+1,1)),@re=''

while @i>0

select @re=nchar(unicode(substring(@str,@i,1))^@c^@i)+@re ,@i=@i-1

end

return(@re)

end

go

--测试

declare @tempstr varchar(20)

set @tempstr='  1 2   3aA'

select '原始值:',@tempstr

select '加密后:',dbo.f_jmstr(@tempstr,0)

select '解密后:',dbo.f_jmstr(dbo.f_jmstr(@tempstr,0),1)

--输出结果

/*

原始值:      1 2   3aA

加密后:    __0'15`'17__°{1

解密后:      1 2   3aA

*/

对字符串进行加密解密相关推荐

  1. python实现加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  2. python如何加密字符串_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安 ...

  3. python 字符串加密解密_Python实现对字符串的加密解密方法示例

    本文实例讲述了Python实现对字符串的加密解密方法.,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错. 安装PyCrypto, ...

  4. 1.16 字符串的加密解密

    为了保证程序的安全,经常采用数据加密的方法.Java 中提供了专门用于加密运算的类和接口. 除了使用加密类和接口外,还可以通过多种方式实现字符串的加密.其中常用的就是获取字符串的字节数组,之后对字节数 ...

  5. 【Java】MD5字符串的加密解密

    至于为什么要给字符串加密解密,各种加密解密的方式优缺点对比等等,本文都不会讲,弄点实用的代码,给需要应急的朋友应急 废话不多说,看代码了: import java.security.Key; impo ...

  6. java 字符串 加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法62616964757a686964616fe4b893e5b19e31333363376462,实例如下: package test; import ...

  7. c语言字符串md5加密解密,.net core使用MD5加密解密字符串

    本文实例为大家分享了.net core使用MD5加密解密字符串的具体代码,供大家参考,具体内容如下 /// /// 加密 /// /// 要加密的文本 /// 秘钥 /// public static ...

  8. java 字符串加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法,实例如62616964757a686964616fe59b9ee7ad9431333337616636下: package test; import ...

  9. 使用凯撒密码对字符串进行加密解密

    实验题目:字符串加密 键盘输入一个原始字符串作为明文,然后使用加密方法加密,再对加密字符串进行解密.样例如下图,加密方法自定,完成其功能并测试. public class S5_1 {public s ...

最新文章

  1. mbr备份以及破坏后如何恢复
  2. jQuery的ajax使用场景讨论(c#)
  3. Linux系统无线鼠标不能用,手把手教你win7系统无线鼠标不能用的处理方案
  4. CentOS最小化系统,怎么安装图形界面
  5. js生成批次号_js生成验证码
  6. OpenCV isContinuous()连续存储的问题
  7. doublevalue_Java Integer类doubleValue()方法与示例
  8. user-agent java_user-agent
  9. hdu 2069 1 5 10 25 50 这几种硬币 一共100个(母函数)
  10. Unity Shader播放序列帧动画
  11. 并联机构工作空间求解_断路器机构弹簧的设计
  12. 易语言5.4一键破解工具
  13. 教你如何使用数字组件,制作有灵魂的数据可视化大屏
  14. 矩阵的Cholesky分解的Matlab简洁实现
  15. 局域网ip扫描工具_IP Scanner Pro for mac(局域网IP扫描软件)
  16. 2017第15届上海国际礼品、赠品及家居用品展览会会刊(参展商名录)
  17. PHP Warning: ‘ vcruntime140.dll‘ 14.0 is not compatible with this PHP build linked with 14.16 in Unk
  18. webRTC(六):webrtc信令服务器实现
  19. 国防科技大学计算机专业录取条件,国防科技大学录取条件
  20. 一节计算机课作文500,难忘的一堂课作文500字5篇

热门文章

  1. CentOS下编译64位的libpython2.6.so.1.0库
  2. 桌面虚拟化之应用程序的整合
  3. [转]MFC子线程更改图像数据后更新主窗口图像显示方法
  4. 二重循环~~for循环
  5. MYSQL 10038 服务启动不起来
  6. Android Studio(九):引用jar及so文件
  7. ios sandbox
  8. jmeter 使用命令行执行
  9. 二、SpringBoot配置文件讲解
  10. 入门篇:函数计算中角色和访问策略的讲解