代码之家  ›  专栏  ›  技术社区  ›  David

Web应用程序的加密算法

  •  2
  • David  · 技术社区  · 15 年前

    我一直在使用对称(Rijndael)密钥算法( http://www.obviex.com/samples/Encryption.aspx )一段时间来加密一个ID。然后我URL对该ID的加密版本进行编码,并将其传递到查询字符串中。当我从查询字符串中检索ID时,我首先对其进行URL解码,然后对其进行解密。

    最近出了一个问题。如果加密ID同时具有“空格”和“+”(例如“abc ef+g”),则URL编码会将所有“空格”更改为“+”。当我对ID进行URL解码时,这是一个问题,因为我不知道哪个“+”是“+”,哪个“+”是“空格”。

    如果有一个选项,我可以选择输出字符集只有字母表(即加密ID只使用A-Z)?或者,如果有其他的双向加密算法可以让我选择输出字符集?

    或者我想我的最后一个选择是用“空格”之类的东西手动替换加密ID中的“+”

    谢谢

    4 回复  |  直到 15 年前
        1
  •  0
  •   ZZ Coder    15 年前

    当作为查询参数传递时,需要对加密的ID进行URL编码。

    对于查询参数或cookie中使用的任何内容,我更喜欢使用base64的URL安全版本。

        2
  •  0
  •   Noon Silk    15 年前

    好吧,要在基本级别上回答您的问题:是的,将加密结果编码为base64。

    但我必须承认,我很关心你的方法。

        3
  •  0
  •   Community CDub    8 年前

    您应该看看我是如何决定管理隐藏ID的方法的(在我的例子中是guid,但可以是任何加密字符串)

    link

        4
  •  0
  •   David Webb    15 年前

    您能手动对URL进行编码以便将空格改为 %20 而不是 + ?

    推荐文章