在经典ASP中加扰/解扰字符串

时间:2011-01-21 20:26:40

标签: asp-classic

我想通过URL发送一个有意义的字符串。

我知道我可能会做其他事情来发送字符串,但这是这种情况下唯一的方法。

我想要发送它并且格式不可读,并且能够稍后返回原始字符串。我试图避免使用加密/解密这两个词,因为我已经完成了研究,它似乎比我在经典ASP中想要的更多(除非我遗漏了一些东西)。所以我真的不想实现加密/解密算法。我希望ASP中内置了一些可以让我这样做的东西。

我正在寻找加扰消息的方法以及将其取回的方法。

有什么建议吗?

4 个答案:

答案 0 :(得分:1)

不,在经典ASP中没有用于加密/解密字符串的默认内置实现。这就是为什么有一百万个关于如何在经典ASP中加密/解密字符串的自定义示例。它真的不像你想象的那样“参与”。例如,请查看2002年的这个例子:

Encrypting/Decrypting Classic ASP querystrings

答案 1 :(得分:0)

如果您想要加扰字符串(而不是加密字符串),请编写自己的rot13编码器/解码器。

可以轻松应用相同的算法来翻译所有ASCII字符。

你可能最好在会话中存储相同的数据。

答案 2 :(得分:0)

为什么不在POST而不是GET中发送信息?这样,用户看不到它。您需要提供更多详细信息,以便我们了解这是否可行。

- 或 -

这个天才代码怎么样......

<%

 'Functions for Encrypting/Decrypting querystrings

  '******************************'******************************

Function Encrypt(Input)

Dim Temp

Temp = CDbl(Input)
Temp = Temp * 7
Temp = Temp + 37
Temp = Temp * 13
Temp = Temp + 91

Encrypt = Temp 

End Function 'Encrypt

'******************************

Function Decrypt(Input)

Dim Temp

Temp = CDbl(Input)
Temp = Temp - 91
Temp = Temp / 13
Temp = Temp - 37
Temp = Temp / 7

Decrypt = Temp 

End Function 'Decrypt

'******************************

%>

Bonus ...现在你可以写这样的Sql查询来查找查询字符串加密时的记录......

Select * from sometable where id = (((@id * 7) + 37) *13) + 91

请不要使用此...

答案 3 :(得分:0)

道格张伯伦应该只提到他的数值例子。

如果您想真正加密您在ASP页面之间传递的内容,请使用George建议的链接。

由我测试,无论您传递的是什么类型的数据,它都能完全满足您的需求:字符串或数字。

如果您要重新使用任何数据,那么会话变量最适合您,您不需要为此加扰数据。 请记住,通过测试,您的站点应该使用端口80来使会话变量按预期工作。

IIS 7中存在某种错误,可以在很短的时间内清除会话,或者如果您的用户提交了其他内容。