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
猜你喜欢
- XMLHTTP对象及其方法------------------MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到R
- list.asp<%@LANGUAGE="VBSCRIPT" CODEPAGE="936&qu
- 导语在设计论坛之前的讨论中曾经谈到过“设计师应该抓住这个时代的情感”,这是设计师的设计嗅觉和职业特性的体现,那么在纷纷扰扰中“裂变”的Web
- 尝试安装server[justin@xen20-vm04 "]$ rpm -ivh MySQL-server-5.1.51-1.g
- 简洁的隐藏垂直菜单在hover时将内容展开。这样的效果在JS里有很多个版本,但这个可以说是绝无仅有的CSS版本。此菜单可以在IE5.5,IE
- 有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错
- SQL语句更改表所有者SQL语句更改表所有者单个修改所有者sql语句如下:查询分析器输入:EXEC sp_changeobject
- 支持CSS属性Safari和WebKit实施大子的CSS 2.1规格所界定的万维网联盟( W3C ) ,以及部分的CSS 3规格。 。这个C
- ASP给图片加水印是需要组件的...常用的有aspjpeg软件和中国人自己开发的wsImage软件,可以上网搜索下载这两个软件,推荐使用咱们
- 很多时候,用户可能会因为承受不了某一产品中的细节设计而放弃使用该产品,这无疑是让设计人员感很沮丧的事情,因为除去这个细节的问题外,这个产品可
- <!-- #include file="conn.asp" -->
- 一直以来,我们大多使用js来实现弹出菜单,可是根据 w3c 的css标准,根本就没有这个必要。只需要简单得使用css+html就可以做出一个
- javascript作为一个动态语言,动态解析脚本的方法非常多,如万恶又万能的eval,低调的Function,IE独占的execScrip
- 数组使用简介原文地址:30 Days of Mootools 1.2 Tutorials - Day 3 - Intro to Using
- 英语原文地址:点此浏览新年开始了,来点猛料,放上15个漂亮的网页排版的demo,来欣赏一下。去年我也专门找了15个同类网站,比较受用户欢迎,
- 一个不错的网页拾色器也叫调色版,请看截图:当想要更多颜色时点击“其它颜色...”此时将调用系统自带的那个颜色选择框:注意:只有把〈scrip
- Microsoft SQL Server 2008通过与Microsoft Office的深度集成,为所有人提供了可用的商业智能,以合适的价
- 当然,每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。但是CSS还可以更好吗?开始用这5个Tips改进你的CSS吧!1.合理
- 一、数字类型所谓的“数字类”,就是指 DECIMAL 和 NUMERIC,它们是同一种类型。它严格的
- 在SQL中,很多威力都来自于将几个表或查询中的信息联接起来,并将结果显示为单个逻辑记录集的能力。在这种联接中包括INNER、LEFT、RIG