首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加一个简单的MAC到url参数?

添加一个简单的MAC到url参数?
EN

Stack Overflow用户
提问于 2009-03-31 08:11:55
回答 3查看 220关注 0票数 1

我想在我的一些URL参数中添加一种简单的MAC。这仅仅是针对应用程序错误和缓存相关问题/bug的附加防线,而不是用来替换应用程序中实际登录安全性的任何形式。给定的业务对象id已经被后端保护,仅限于单个用户。

基本上,我想在我的url参数中添加一个简短的身份验证代码,其大小为2-4个字符。我想我希望有一个类似f(业务数据id+登录用户id+?)=散列的可逆函数,但我愿意接受建议。

其主要目的是停止id猜测,并确保每个登录用户的url都是相当不同的。我也不想要像MD5这样又大又笨重的东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-04-02 21:10:06

因为你不是在寻找密码的质量,也许24位的CRC将适合你的需要。虽然MD5在绝对意义上是“快”的,但相对来说,CRC是“快得令人目眩的”。然后,3字节的CRC可以被文本编码成四个字符,使用Base-64编码.

下面是用于OpenPGP ASCII的检查的Java实现--装甲校验和:

代码语言:javascript
复制
private static byte[] crc(byte[] data)
{
  int crc = 0xB704CE;
  for (int octets = 0; octets < data.length; ++octets) {
    crc ^= (data[octets] & 0xFF) << 16;
    for (int i = 0; i < 8; ++i) {
      crc <<= 1;
      if ((crc & 0x1000000) != 0)
        crc ^= 0x1864CFB;
    }
  }
  byte[] b = new byte[3];
  for (int shift = 16, idx = 0; shift >= 0; shift -= 8) {
    b[idx++] = (byte) (crc >>> shift);
  }
  return b;
}

我会散列一个秘密密钥(只有服务器才知道),以及您想要保护的任何东西--可能是对象标识符和用户标识符的组合。

票数 2
EN

Stack Overflow用户

发布于 2009-04-01 13:23:21

如果您想要的基本上是MD5但更小,那么为什么不使用MD5,而只使用最后4个字符呢?这不会给你的urls添加一个巨大的斑点,它总是4位很好的十六进制数字。

票数 1
EN

Stack Overflow用户

发布于 2009-03-31 08:20:55

一个快速的问题,我相信有一个很好的答案,但是为什么不将这些信息存储在一个cookie中呢?

然后,您可以使用一些大而笨重的东西,比如MD5,您的URL也会很漂亮。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/700514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档