asp简单可逆运算字符串加密解密函数
作者:雨哲 发布时间:2010-05-04 16:42:00
前段时间在开发雨哲树网程序的时候,遇到需要转换地址中的参数,需要用到简单可逆运算的加密功能。在网上找了很多都不理想。
因为我需要的这个可逆运算的加密功能,要能实现一对一的转换加密,就是原来是一个字符串,加密后还是一个字符串。
这样才能达到我需要的效果。没找到现成的没办法,只得自己动手做了呵。
这个加密转换的原理很简单,就是按照指定的规则进行位数加1替换。这里我命名为“位数加1替换法”。
下面列出具体函数代码:
Function YuZhe_EnText(StrText, EnType, ListEnText)
'EnType 0-加密 1-解密
'ListEnText 加密转换规则,请填写1-9a-z之前不重复数字和字母。按照规则,位数加1替换,如果规则中未涉及的字符将显示原字符。例规则为“321a456”,那么原字符串“1c2a3b”转换后就为ac142b
'本函数代码由雨哲[http://www.yz81.com]原创,转载或使用请保留本信息
If StrText = "" or IsNull(StrText) Then
YuZhe_EnText = StrText
Exit Function
End If
Dim StrEnText, IsShowText, iEnText, MidEnText
Dim iListEnText, MidListEnText, LenListEnText, GetTextLen
If ListEnText = "" Then '默认加密转换规则
ListEnText = "q0nc9w8edaoiuk2mzrfy3xt1p5ls67g4bvhj"
End If
StrEnText = ""
LenListEnText = Len(ListEnText)
For iEnText = 1 To Len(StrText)
MidEnText = LCase(Mid(StrText,iEnText,1))
IsShowText = False
For iListEnText = 1 To LenListEnText
MidListEnText = LCase(Mid(ListEnText,iListEnText,1))
If MidEnText = MidListEnText Then
IsShowText = True
GetTextLen = 0
If EnType = 0 Then'加密
If iListEnText = LenListEnText Then
GetTextLen = 1
Else
GetTextLen = iListEnText + 1
End If
Else'解密
If iListEnText = 1 Then
GetTextLen = LenListEnText
Else
GetTextLen = iListEnText - 1
End If
End If
StrEnText = Mid(ListEnText,GetTextLen,1) & StrEnText
Exit For
End If
Next
If IsShowText = False Then
StrEnText = MidEnText & StrEnText
End If
Next
YuZhe_EnText = StrEnText
End Function
参数说明:
StrText - 原字符串,即需要加密转换的字符
EnType - 类型,0-加密 1-解密。也就是一个可逆操作。如果先使用1,那么解密就使用0。
ListEnText - 加密转换规则,请填写1-9a-z不重复数字和字母。按照这里填写的规则位数加1替换。因为我只需要用到数字和字母,所以只是测试了数字和字母,至于中文能否使用,可以测试一下。
示例说明:
原字字符串:159863247
加密转换规则:973614285
加密转换过程:加1替换。9换7,7换3,3换6,6换1,1换4,4换2,2换8,8换5,5换9
调用函数:<%=YuZhe_EnText("159863247", 0, "973614285")%>
加密后结果:497516823
加密后字符串:497516823
解密转换规则:973614285
解密转换过程:减1替换。9换5,7换9,3换7,6换3,1换6,4换1,2换4,8换2,5换8
调用函数:<%=YuZhe_EnText("497516823", 1, "973614285")%>
解密后结果:159863247


猜你喜欢
- pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的
- 1. 数据集基本信息df = pd.read_csv()df.head():前五行;df.info():rangeindex:行索引;dat
- 写models.py时缺少了一个 verbose_name,导致数据库出现问题,整了很久,摸索出重新建立数据库的方法:首先删除每个app中的
- python文件特定行插入和替换实例详解python提供了read,write,但和很多语言类似似乎没有提供insert。当然真要提供的话,
- 在mac下载安装prometheus在https://prometheus.io/download/下载prometheus放到自定义的位置
- 可切片使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET 子句。>>> E
- 本文实例为大家分享了基于神经卷积网络的人脸识别,供大家参考,具体内容如下1.人脸识别整体设计方案客_服交互流程图:2.服务端代码展示sk =
- 实例如下所示:tcode={}transcode={}def GetTcode():#从文本中获取英文对应的故障码,并保存在tcode字典(
- 本文实例为大家分享了python实现桌面托盘气泡提示的具体代码,供大家参考,具体内容如下# -*- encoding:utf-8 -*- #
- 周一 至 周日 时间格式化转化(Y --- 年 M --- 月 D--- 天)
- 本文实例讲述了Python时间的精准正则匹配方法。分享给大家供大家参考,具体如下:要用正则表达式精准匹配时间,其实并不容易方式一:>&
- 本文主要讲述:自定义树形控件<el-tree>需求说明:Element UI 官网提供的树形控件包含基础的、可选择的、自定义节点
- 下面为大家举一个例子,请按照下面的步骤: (1)从http://home.gbsource.net/xuankong/dll.z
- 1.忍受 * 第一种解决办法,很简单,无他,不管他,没有读到也没事。这时业务不需要任何改造,你好,我好,她也好~如果业务对于数据一致性要求不高
- 第一次在自己虚机上安装mysql 中间碰到很多问题 在这里记下来,分享一下。linux centOS 6mysql版本 mysql-5.7.
- 页级:引擎 BDB。表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行行级:引擎 INNODB , 单独的一行记录加锁表级,
- 今天我遇到一个问题,MySQL企业版备份引起I/O子系统负载过大,应用响应缓慢,导致系统不可用。所以我想限制mysqlbackup的进程,使
- 今天真的被编码问题一直困扰着,午休都没进行。也真的见识到了各种编码。例如:gbk,unicode、utf-8、ansi、gb2312等。如果
- 实验环境:tensorflow版本1.2.0,python2.7介绍depthwise_conv2d来源于深度可分离卷积:Xception:
- 点击率预估模型0.前言本篇是一个基础机器学习入门篇文章,帮助我们熟悉机器学习中的神经网络结构与使用。日常中习惯于使用Python各种成熟的机