3个回答
展开全部
刚好以前写过一篇文章,提取了一部分
对敏感的数据进行加密是必要的,如用户的密码的加密。在要对数据进行加密前得确定要用何种加密方式,加密分类有很多种,从可逆角度可分为可逆和不可逆,从加密算法可分为秘密密钥算法、公开密钥算法(用于加密、数据签名和密钥管理)以及单向散列函数等。md5加密是不可逆的,md5加密的具体实现又分为许多种。
加密为什么要采用不可逆?举个例子,当你输入的密码进行加密的密文被截取,那他也要把密文解密成原文,这时由于不可逆,那他要破解密码的难度就提高,除非他可以越过加密那一步直接提供密文,这样就达到安全的目的。每当我们忘记密码进行找回密码,大多数网站要求我们输入新的密码而不是直接告诉我们原来的密码,这是由于不可逆造成的,但这又不是坏处,为什么这么说?如果在找回密码时能够知道原来的密码,那么卧底就不用修改密码来监控所有人,而所有人又不知情。但并不是所有网站都采用不可逆的算法,笔者在某网站注册过用户,有一段没登录过,那网站就会给笔者一份提醒邮件,而这提醒邮件又显示着笔者的密码,这很可能是这个网站采用的不是不可逆的算法。
今天为一个网友实现了一个简易的自定义加密方式,使用的是Visual Basic 6.0。关键代码如下:
Dim decode As String, encode As String, oldString As String, newString As String
Dim i As Integer
decode = "1234567890" '加密原文对照字符,不应该出错相同的字符
encode = "eoSDriKjsd" '加密成密文的对照字符,字符个数不能少于decode,否则极易造成出错
oldString = "87232" '待加密的字符串,所有字符都必需能够在decode里找到对应位置
newString = "" '存放加密后的字符串
For i = 1 To Len(oldString)
newString = newString + Mid$(encode, Instr(decode, Mid$(oldString, i, 1)), 1)
Next i
Print "原文:"; oldString
Print "密文:"; newString
decode和encode的值可以根据需要设置,oldString可以由文框输入,如果encode里的字符俩俩不相同,那么只需调换decode和encode的值,就可以实现解密,否则加密后的密文为不可逆。
当然,在实际的应用种应增加加密的算法复杂度,让密文不至于被人轻而易举破解。更多的加密知识请参考相关文档。
希望回答对你有帮助
对敏感的数据进行加密是必要的,如用户的密码的加密。在要对数据进行加密前得确定要用何种加密方式,加密分类有很多种,从可逆角度可分为可逆和不可逆,从加密算法可分为秘密密钥算法、公开密钥算法(用于加密、数据签名和密钥管理)以及单向散列函数等。md5加密是不可逆的,md5加密的具体实现又分为许多种。
加密为什么要采用不可逆?举个例子,当你输入的密码进行加密的密文被截取,那他也要把密文解密成原文,这时由于不可逆,那他要破解密码的难度就提高,除非他可以越过加密那一步直接提供密文,这样就达到安全的目的。每当我们忘记密码进行找回密码,大多数网站要求我们输入新的密码而不是直接告诉我们原来的密码,这是由于不可逆造成的,但这又不是坏处,为什么这么说?如果在找回密码时能够知道原来的密码,那么卧底就不用修改密码来监控所有人,而所有人又不知情。但并不是所有网站都采用不可逆的算法,笔者在某网站注册过用户,有一段没登录过,那网站就会给笔者一份提醒邮件,而这提醒邮件又显示着笔者的密码,这很可能是这个网站采用的不是不可逆的算法。
今天为一个网友实现了一个简易的自定义加密方式,使用的是Visual Basic 6.0。关键代码如下:
Dim decode As String, encode As String, oldString As String, newString As String
Dim i As Integer
decode = "1234567890" '加密原文对照字符,不应该出错相同的字符
encode = "eoSDriKjsd" '加密成密文的对照字符,字符个数不能少于decode,否则极易造成出错
oldString = "87232" '待加密的字符串,所有字符都必需能够在decode里找到对应位置
newString = "" '存放加密后的字符串
For i = 1 To Len(oldString)
newString = newString + Mid$(encode, Instr(decode, Mid$(oldString, i, 1)), 1)
Next i
Print "原文:"; oldString
Print "密文:"; newString
decode和encode的值可以根据需要设置,oldString可以由文框输入,如果encode里的字符俩俩不相同,那么只需调换decode和encode的值,就可以实现解密,否则加密后的密文为不可逆。
当然,在实际的应用种应增加加密的算法复杂度,让密文不至于被人轻而易举破解。更多的加密知识请参考相关文档。
希望回答对你有帮助
追问
好像是加密数字呀!主要是用来加密中文的
追答
微软教程
http://support.microsoft.com/kb/821762/
如果是自己写可以考虑把字符转换成编码形式(如二进制的Unicode等)
展开全部
给你个简单的拿去用吧
Str=想加密 或者解密的文本,jm为True或者False是表示加密或解密,反正加解密相反就行了,
参数n表示偏移数
Private Function chan(ByVal str As String, Optional jm As Boolean) As String
Dim n As Byte, i As Long
n = 2
If Len(str) > 0 Then
For i = 1 To Len(str)
If IsMissing(jm) Or jm = False Then
chan = chan & ChrW(AscW(Mid(str, i, 1)) - n)
Else
chan = chan & ChrW(AscW(Mid(str, i, 1)) + n)
End If
Next
Else
MsgBox "字符串不能为空"
End If
End Function
Str=想加密 或者解密的文本,jm为True或者False是表示加密或解密,反正加解密相反就行了,
参数n表示偏移数
Private Function chan(ByVal str As String, Optional jm As Boolean) As String
Dim n As Byte, i As Long
n = 2
If Len(str) > 0 Then
For i = 1 To Len(str)
If IsMissing(jm) Or jm = False Then
chan = chan & ChrW(AscW(Mid(str, i, 1)) - n)
Else
chan = chan & ChrW(AscW(Mid(str, i, 1)) + n)
End If
Next
Else
MsgBox "字符串不能为空"
End If
End Function
追问
有没有其他的了,Ascii我猜都能猜出来
追答
一般的加密都是通过操作Ascii来进行变化的 你可以针对Ascii进行一些比较复杂的操作不就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似玩的太高级。我只会直接破解密码。文件夹和office文档,100%解密!
更多追问追答
追问
我是再写一个读写脚本的类,想再增加一个加密读写功能
追答
哦,自己可以搞出这些破译类的程序,太撞击速度太低。不适合实际使用的,解密PDF文档,虽然我采取的也是穷举法,但撞击速度52万次/秒。10位数以下的密码是必定可以解开的。我以前自己制作过此类小程序,撞击速度10次/秒。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询