请教如何将数字,比如:1003.56 加密后,显示为字符.

HBJMSHOP 2009-11-17 11:32:35
请教如何将数字,比如:1003.56 加密后,显示为字符.
如:1003.56加密后,显示为:类式EABDEEFD
然后再将它还原.

或将数字加密后比如:1003.56 加密后显示为其它字符,如*&%^$%等字符,或显示为其它数字也可
然后能还原
...全文
200 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kbsssnlss 2009-11-22
  • 打赏
  • 举报
回复
Public Function Xxor(Name As String) As String
Dim Index As Integer
Dim Md5list As Integer
Dim Pwd As String
Const Md5 As String = "263"
Index = Len(Name)
Md5list = Len(Md5)
Pwd = ""
For I = 1 To Index
Pwd = Pwd & Chr(Asc(Mid(Name, I, 1)) Xor Mid(Md5, ((I Mod Md5list) + 1), 1))
Next
Md5xor = Pwd
End Function


Dim a As String
Dim b As String
Dim c As String

a = "1003.56"
b = Xxor(a)
c = Xxor(b)

'b=加密以后的字符串
'c=1003.56

stayor 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 flyingdragon168 的回复:]
最簡的方法,你把0~9與標點符號都具體對應A~Z中的一個字符,然後一一對應去加解密,這種方法非常簡單,缺點是撐握了規律後很容易識別。
[/Quote]

这种方法最直观。
Flyingdragon168 2009-11-18
  • 打赏
  • 举报
回复
最簡的方法,你把0~9與標點符號都具體對應A~Z中的一個字符,然後一一對應去加解密,這種方法非常簡單,缺點是撐握了規律後很容易識別。
贝隆 2009-11-17
  • 打赏
  • 举报
回复
加密方法很多,楼主可以根据需要自行设计也可。
东方之珠 2009-11-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 shanyonggang 的回复:]
用这个较好,规范、科学、不易破解。
引用 5 楼 chenjl1031 的回复:
VB codeOptionExplicit'加密字符串PublicFunction JiaMiString(ByVal strSourceAsString, ByVal MAAsCurrency)AsString'该函数只对中西文起到加密作用
'参数为:源文件,密码OnErrorGoTo ErrEnDeCodeDim XAsDouble, iAsIntegerDim CHARNUMAsCurren?-

[/Quote]

那是我自己乱整的,没有固定套路!
shanyonggang 2009-11-17
  • 打赏
  • 举报
回复
用这个较好,规范、科学、不易破解。
[Quote=引用 5 楼 chenjl1031 的回复:]
VB codeOptionExplicit'加密字符串PublicFunction JiaMiString(ByVal strSourceAsString, ByVal MAAsCurrency)AsString'该函数只对中西文起到加密作用
'参数为:源文件,密码OnErrorGoTo ErrEnDeCodeDim XAsDouble, iAsIntegerDim CHARNUMAsCurren?-
[/Quote]
zzhgb 2009-11-17
  • 打赏
  • 举报
回复
太多了,楼主不知道用哪个了
东方之珠 2009-11-17
  • 打赏
  • 举报
回复
Option Explicit

'加密字符串
Public Function JiaMiString(ByVal strSource As String, ByVal MA As Currency) As String
'该函数只对中西文起到加密作用
'参数为:源文件,密码
On Error GoTo ErrEnDeCode
Dim X As Double, i As Integer
Dim CHARNUM As Currency, RANDOMINTEGER As Currency
Dim SINGLECHAR As String * 1
Dim strTmp As String
If MA < 0 Then
MA = MA * (-1)
End If
X = Rnd(-MA)
For i = 1 To Len(strSource) Step 1 '取单字节内容
SINGLECHAR = Mid(strSource, i, 1)
CHARNUM = Asc(SINGLECHAR)
g: RANDOMINTEGER = Int(127 * Rnd)
If RANDOMINTEGER < 30 Or RANDOMINTEGER > 100 Then GoTo g
CHARNUM = (1031 * CHARNUM) Xor (131 * RANDOMINTEGER)
CHARNUM = CHARNUM Xor RANDOMINTEGER
strTmp = strTmp & Chr(CHARNUM)
DoEvents
Next i

JiaMiString = strTmp
Exit Function

ErrEnDeCode:
JiaMiString = ""
Debug.Print Err.Number & "\" & Err.Description
End Function

Private Sub Command1_Click()
Debug.Print JiaMiString("1003.56", 20091117) '结果为: 眵賠韨喾?餫

End Sub
Tiger_Zhao 2009-11-17
  • 打赏
  • 举报
回复
通常加密/解密是对字节数组进行操作的,你只要再加一层 Base64 编码,就可以在字节数组和可视字符之间进行转化。形式如下
'加密
dim sData as string
dim aData1() as byte, aData2 as byte
dim sBase64 as string
sData = "1003.56"
aData1 = StrConv(sData,vbFromUnicode)
aData2 = Real_Enocde(aData1,password)
sBase64 = Base64_Encode(aData2)
debug.print sBase64

'解密
dim sData as string
dim aData1() as byte, aData2 as byte
dim sBase64 as string
sBase64 = "..."
aData2 = Base64_Decode(sBase64)
aData1 = Real_Decode(aData2,password)
sData = StrConv(aData1,vbUnicode)
debug.print sData

zdingyun 2009-11-17
  • 打赏
  • 举报
回复
Option Explicit
Dim shuzi As String
Dim strzh As String
Dim shuziHY As String
Dim i As Long

Private Sub Command1_Click() '加密
For i = 1 To Len(shuzi)
strzh = strzh & Chr(Asc(Mid(shuzi, i, 1)) + 15)
Next
Text2 = strzh
End Sub
Private Sub Command2_Click() '解密
For i = 1 To Len(shuzi)
shuziHY = shuziHY & Chr(Asc(Mid(strzh, i, 1)) - 15)
Next
Text3 = shuziHY
End Sub

Private Sub Form_Load()
shuzi = "1003.56"
Text1 = shuzi
End Sub
jhone99 2009-11-17
  • 打赏
  • 举报
回复
ls是一个连接

网上搜一下,方法好多
jhone99 2009-11-17
  • 打赏
  • 举报
回复
chinaboyzyq 2009-11-17
  • 打赏
  • 举报
回复

Private Sub Form_Load()
Text1 = 1003.56
End Sub

Private Sub Command1_Click() '加密
Dim i As Integer
Dim temp As String
For i = 1 To Len(Text1)
temp = temp & Chr(Asc(Mid(Text1, i, 1)) Xor 97)
Next
Text1 = temp

End Sub

Private Sub Command2_Click() '解密
Dim temp As String
Dim i As Integer
For i = 1 To Len(Text1)
temp = temp & Chr(Asc(Mid(Text1, i, 1)) Xor 97)
Next
Text1 = temp

End Sub

guyehanxinlei 2009-11-17
  • 打赏
  • 举报
回复
学习了
孤独剑_LPZ 2009-11-17
  • 打赏
  • 举报
回复
加密到方法很多:
1. 通用到加密是利用VB中自带RND()函数的功能编写了如下加密解密方法。
当RND()的参数(我们称它为种子)为负值时,同一种子产生同一个随机序列,同时VB还具有强大的二进制技术功能。
5楼到代码就是用Rnd函数做的
2. MD5字符串加密 参考

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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