求一加密和解密函数!

llthero 2004-09-27 10:48:56
能对字符串加密:字符串只包含数字和字母

加密后生成的加密字符串也只包含:数字和字母

...全文
314 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
llthero 2004-09-27
  • 打赏
  • 举报
回复
tl_pear(飘叶寻梦) 你这函数有问题,自已先试下!
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
给你一个加密的函数
Private Function XorOut(ByVal strNum As Integer, ByVal strText As String) As String
Dim i As Integer
Dim XorValue1 As Short
Dim strResult1 As String
Dim strResult As String
Dim ss As String
'XorValue1 = Asc(strText)
For i = 1 To Len(strText)
XorValue1 = Asc(Mid(strText, i, 1))
ss = CStr(XorValue1)
While Len(ss) < 4
ss = "0" + ss
End While
strResult = strResult + ss
Next
While Len(strResult) > 0
ss = Microsoft.VisualBasic.Left(strResult, 4)
ss = Chr(CInt(ss) + strNum)
strResult1 = strResult1 + ss
strResult = Microsoft.VisualBasic.Right(strResult, Len(strResult) - 4)
End While
XorOut = strResult1
End Function
解密也是同样的道理!
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
你的这个函数不行,结果总是为空的,
你把XorOut = strResult。
但是你没有给strResult赋值!
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
如果就是能对字符串加密便可,但要加密后的字符串须是(字母或数字便可)!
那么你可以发挥你的想象去加密和解密!
象什么字符位置更换咯!ASCII码的加减、xor等运算,都可以!
我想代码不必要写了吧!
llthero 2004-09-27
  • 打赏
  • 举报
回复
我有一个:大家来分析下,可加密也可解密。但生成的加密字符串有其它字符
Private Function XorOut(ByRef strNum As String, ByRef strText As String) As String
Dim i As Integer
Dim XorValue1 As Short
Dim XorValue2 As Short
Dim strResult As String
For i = 1 To Len(strText)
XorValue1 = Asc(Mid(strText, i, 1))
XorValue2 = Asc(Mid(strNum, (i Mod Len(strNum)) + 1, 1))
Next
XorOut = strResult
End Function
thipzhao 2004-09-27
  • 打赏
  • 举报
回复
伪代码给你
最简单的移位加密


读入字符串 str
读入移位 n

str的每个字符ascii码 加上n

return str


解密
就是 减去n
llthero 2004-09-27
  • 打赏
  • 举报
回复
能对字符串加密便可,但要加密后的字符串须是(字母或数字便可)!
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
你希望达到什么样的要求?
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
加密时每一个字符换成四位,解密时每四位换成一个字符,长度肯定是一样的!
当然每一个加密字符我们都规定长度,不足的时候,用有规律的字符来补充
是肯定可以的!
还要说一下我上面的函数,由于是刚刚想到而改的。所以贴的时候贴错了
函数应该改成下面的形式,当FLAG为flase时是加密,FLAG为ture时是解密;当然反过来也可以,不过要注意一下上下限,如0减一个数字为负,这时应该怎么控制等!还要自己去完善,我只能给的是一个方法。
Private Function XorOut(ByVal strNum As Integer, ByVal strText As String,optinal byval flag as boolean=flase) As String
Dim i As Integer‘用来获取每个字符
Dim XorValue1 As Short’用来获得每个字符的ASCII码
Dim strResult1 As String‘用来取得最终返回结果
Dim strResult As String‘每个字符用4位ASCII码代替
Dim ss As String’取得每个字符的四位ASCII码
For i = 1 To Len(strText)‘得到strText的ASCII码
XorValue1 = Asc(Mid(strText, i, 1))
ss = CStr(XorValue1)
While Len(ss) < 4
ss = "0" + ss
End While
strResult = strResult + ss
Next
While Len(strResult) > 0’取得strText用每个字符用4位ASCII码代替的ASCII码并加密!
ss = Microsoft.VisualBasic.Left(strResult, 4)
If flag = False Then
ss = Chr(CInt(ss) + strNum)‘把字符的ASCII码加上一个固定值并求出它的字符形式
Else
ss = Chr(CInt(ss) - strNum)‘把字符的ASCII码减上一个固定值并求出它的字符形式
End If
'ss = Chr(CInt(ss) + strNum)‘把字符的ASCII码加上一个固定值并求出它的字符形式
strResult1 = strResult1 + ss
strResult = Microsoft.VisualBasic.Right(strResult, Len(strResult) - 4)
End While
XorOut = strResult1
End Function
dofly 2004-09-27
  • 打赏
  • 举报
回复
每一个字符换成四位,那生成的加密字符就会长度不一样。
可不可以这样,每一个加密字符我们都规定长度,
不足的时候,用有规律的字符来补充
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
Private Function XorOut(ByVal strNum As Integer, ByVal strText As String) As String
Dim i As Integer‘用来获取每个字符
Dim XorValue1 As Short’用来获得每个字符的ASCII码
Dim strResult1 As String‘用来取得最终返回结果
Dim strResult As String‘每个字符用4位ASCII码代替
Dim ss As String’取得每个字符的四位ASCII码
For i = 1 To Len(strText)‘得到strText的ASCII码
XorValue1 = Asc(Mid(strText, i, 1))
ss = CStr(XorValue1)
While Len(ss) < 4
ss = "0" + ss
End While
strResult = strResult + ss
Next
While Len(strResult) > 0’取得strText用每个字符用4位ASCII码代替的ASCII码并加密!
ss = Microsoft.VisualBasic.Left(strResult, 4)
If flag = False Then
ss = Chr(CInt(ss) + strNum)‘把字符的ASCII码加上一个固定值并求出它的字符形式
Else
ss = Chr(CInt(ss) - strNum)‘把字符的ASCII码减上一个固定值并求出它的字符形式
End If
'ss = Chr(CInt(ss) + strNum)‘把字符的ASCII码加上一个固定值并求出它的字符形式
strResult1 = strResult1 + ss
strResult = Microsoft.VisualBasic.Right(strResult, Len(strResult) - 4)
End While
XorOut = strResult1
End Function
tl_pear 2004-09-27
  • 打赏
  • 举报
回复
我在vb.net上已经通过!
补充一下!
只能对数字和字母加密!
Private Function XorOut(ByVal strNum As Integer, ByVal strText As String) As String
中的strNum要固定的,这样才能按同样的方法来解密!
strText 为要加密的类容

如:
Dim ss As String
ss = XorOut(1, "fasfd")
MsgBox(ss)
即可以给“fasfd”加密!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧