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

标签:字符串,加密函数,加密
0
投稿

猜你喜欢

  • 如何在事件代理中正确使用 focus 和 blur 事件

    2010-01-30 12:51:00
  • python实现3D地图可视化

    2023-08-27 10:24:50
  • 详解Python中的循环语句的用法

    2023-10-26 08:37:35
  • 如何用ASP输出HTML文件?

    2010-06-11 20:01:00
  • python仿evething的文件搜索器实例代码

    2022-05-05 09:05:15
  • Python 文件数据读写的具体实现

    2023-07-08 12:15:06
  • 轻松掌握怎样从Windows命令行启动MySQL

    2009-02-23 17:18:00
  • vue3动态路由刷新后空白或者404问题的解决

    2023-07-02 16:58:39
  • 如何使用python传入不确定个数参数

    2023-10-27 22:56:36
  • git基础之各版本控制系统介绍

    2022-02-14 02:16:03
  • 符合网站标准的图片切换代码(天极软件)

    2008-02-20 08:23:00
  • Firefox 3.6新功能预览

    2009-12-01 14:23:00
  • 如何基于python对接钉钉并获取access_token

    2023-11-27 04:25:07
  • Python3爬虫中识别图形验证码的实例讲解

    2022-10-17 17:11:20
  • Bootstrap基本插件学习笔记之轮播幻灯片(23)

    2024-04-19 10:13:30
  • Access函数大全

    2009-12-23 19:22:00
  • Pandas 多进程处理数据提高速度

    2021-12-11 17:30:51
  • python三元运算符实现方法

    2022-08-19 23:11:34
  • 为什么相对PHP黑python的更少

    2024-05-21 10:20:51
  • Python asyncio的一个坑

    2022-04-06 20:58:28
  • asp之家 网络编程 m.aspxhome.com