Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

谁有DES加密模块?

流星  发表于:2016-04-21 21:47:26  
复制

谁有DES加密模块,Access网上现有的都有问题,加密Microsoft Access后再解密就出现错误了。

但是平台自带的没有问题

 

Top
在水一方 发表于:2016-04-21 22:34:33

点击下载此附件

//DESCRYPT加密解密
Function Int b64_size(ULong size,ULong flag) Library "DESCRYPT.dll"
Function Int b64_des(Ref String In,Ref String out,String Key,ULong size,ULong flag )Library "DESCRYPT.dll"


function string f_descrypt (string in_pass, integer in_state)

// 函数: f_descrypt()
//--------------------------------------------------------------------
// 描述:调用外部dll文件实现加密/解密用户登录密码 
//--------------------------------------------------------------------
// 参数:
// value string in_pass
// value integer in_state
//--------------------------------------------------------------------
// 返回:  string
//--------------------------------------------------------------------
// 作者: zhl750501 日期: 2014.12.31
//====================================================================


String ls_inpass,ls_outpass
Long ll_state,ll_size
ls_inpass = in_pass
ll_state = in_state
ll_size = B64_size(Len(ls_inpass),1)
ls_outpass = Space(ll_size)
B64_Des (ls_inpass,ls_outpass,'ABCDEFG',Len (ls_inpass),in_state)
Return ls_outpass
End function



流星 发表于:2016-04-21 22:42:39
没看明白,能给个示例吗,大神!

在水一方 发表于:2016-04-21 22:58:12
这是pb 的函数代码,和vb差不多,你自己改一下就可以。

流星 发表于:2016-04-22 21:42:13

这个不是改出来的Access模块,加解密也太简单了吧?

Public Const seed1 = 82674848
Public Function 加密(Text As String, seed1 As Double) As String
    Dim i As Long
    Dim strTemp As String
    
    If Len(Text) = 0 Then
        Exit Function
    End If
    
    For i = 1 To Len(Text)
        strTemp = strTemp & (Asc(Mid(Text, i, 1)) Xor seed1)
    Next
    
    加密 = strTemp
End Function

Public Function 解密(Text As String, seed As Double) As String
    Dim i        As Long
    Dim strTemp  As String
    Dim Length   As Integer
    
    If Len(Text) = 0 Then
        Exit Function
    End If
    
    Length = Len(CStr(seed))
    For i = 1 To Len(Text) Step Length
        strTemp = strTemp & Chr((Mid(Text, i, Length) Xor seed1))
    Next
    
    解密 = strTemp
End Function



总记录:4篇  页次:1/1 9 1 :