首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

本人SQL初学者,求达人帮小弟我写个字符串加密解密的函数

2012-01-23 
本人SQL菜鸟,求达人帮我写个字符串加密解密的函数。求达人帮我写个字符串加密解密的函数。要求:加密时输入为

本人SQL菜鸟,求达人帮我写个字符串加密解密的函数。
求达人帮我写个字符串加密解密的函数。
要求:
加密时
输入为nvarchar,10位
输出为nvarchar,20位
输出为输入字符串每一字符与某一固定字附串每一字符按位异或。

解密就不用说了,要求能反过来。
先行谢过!

[解决办法]
到百度上去找找.

ASP字符串的加密解密函数

rsa.asp
<%
rem 在ASP中实现加密与解密,加密方法:根据RSA
rem 联系:hnsoso@sina.com
Class clsRSA

Public PrivateKey
Public PublicKey
Public Modulus

Public Function Crypt(pLngMessage, pLngKey)
On Error Resume Next
Dim lLngMod
Dim lLngResult
Dim lLngIndex
If pLngKey Mod 2 = 0 Then
lLngResult = 1
For lLngIndex = 1 To pLngKey / 2
lLngMod = (pLngMessage ^ 2) Mod Modulus
' Mod may error on key generation
lLngResult = (lLngMod * lLngResult) Mod Modulus
If Err Then Exit Function
Next
Else
lLngResult = pLngMessage
For lLngIndex = 1 To pLngKey / 2
lLngMod = (pLngMessage ^ 2) Mod Modulus
On Error Resume Next
' Mod may error on key generation
lLngResult = (lLngMod * lLngResult) Mod Modulus
If Err Then Exit Function
Next
End If
Crypt = lLngResult
End Function

Public Function Encode(ByVal pStrMessage)
Dim lLngIndex
Dim lLngMaxIndex
Dim lBytAscii
Dim lLngEncrypted
lLngMaxIndex = Len(pStrMessage)
If lLngMaxIndex = 0 Then Exit Function
For lLngIndex = 1 To lLngMaxIndex
lBytAscii = Asc(Mid(pStrMessage, lLngIndex, 1))
lLngEncrypted = Crypt(lBytAscii, PublicKey)
Encode = Encode & NumberToHex(lLngEncrypted, 4)
Next
End Function

Public Function Decode(ByVal pStrMessage)
Dim lBytAscii
Dim lLngIndex
Dim lLngMaxIndex
Dim lLngEncryptedData
Decode = " "
lLngMaxIndex = Len(pStrMessage)
For lLngIndex = 1 To lLngMaxIndex Step 4
lLngEncryptedData = HexToNumber(Mid(pStrMessage, lLngIndex, 4))
lBytAscii = Crypt(lLngEncryptedData, PrivateKey)
Decode = Decode & Chr(lBytAscii)
Next
End Function

Private Function NumberToHex(ByRef pLngNumber, ByRef pLngLength)
NumberToHex = Right(String(pLngLength, "0 ") & Hex(pLngNumber), pLngLength)
End Function

Private Function HexToNumber(ByRef pStrHex)
HexToNumber = CLng( "&h " & pStrHex)
End Function

End Class
%>

test.asp
<!--#INCLUDE FILE= "RSA.asp "-->
<%
function Encryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA

LngKeyE = "32823 "
LngKeyD = "20643 "
LngKeyN = "29893 "
StrMessage = Message

Set ObjRSA = New clsRSA

ObjRSA.PublicKey = LngKeyE
ObjRSA.Modulus = LngKeyN
Encryptstr = ObjRSA.Encode(StrMessage)
Set ObjRSA = Nothing
end function

function decryptstr(Message)
Dim LngKeyE
Dim LngKeyD
Dim LngKeyN
Dim StrMessage
Dim ObjRSA


LngKeyE = "32823 "
LngKeyD = "20643 "
LngKeyN = "29893 "
StrMessage = Message

Set ObjRSA = New clsRSA

ObjRSA.PrivateKey =LngKeyD
ObjRSA.Modulus=LngKeyN
decryptstr=ObjRSA.Decode(StrMessage)
Set ObjRSA = Nothing
end function

dim last,first
first= "sohu "
Response.Write "加密前为: "&first
last=Encryptstr(first)
Response.Write "加密后为 "&last
Response.Write "解密后为 " &decryptstr(last)


%>
[解决办法]
有关加密与解密的书很多,找些看看。
[解决办法]
SQL2000自带的加密和解密函数
[解决办法]
--参考
http://topic.csdn.net/t/20041202/20/3610469.html
[解决办法]
可以参考联机帮助
[解决办法]
调用 Windows 套接字 2 API 传输 TCP/IP 套接字或 NWLink IPX/SPX 套接字。


调用 Net-Library 路由器将数据包发送到命名管道、多协议、AppleTalk 或 Banyan VINES Net-Library。

[解决办法]
邹建写过一个比较好的加解密存储过程的。找找看
[解决办法]
输出为nvarchar,20位
--------------------------------
这个就不太合理了,异或产生的结果有可能是0,或者是其他不显示的字符,这类数据还用nvarchar来做输出就不合适了
[解决办法]
参考联机帮助里面有function的例子 ,仔细看一下。

热点排行