Crypt()用户的ID是字母数字,用于API请求网址

时间:2018-01-12 03:19:19

标签: php mysql sql encryption crypt

当用户在其个人资料中添加一个帐户时,该帐户将按照数据库的预期获得自动递增的ID。

我使用此ID,然后使用php的crypt($account_id, 'salt_here')函数和自定义的静态盐生成一个安全的公共ID,如果用户看到我不在乎,然后添加此到相关帐户的数据库以供将来使用。

这个加密的ID我想在我目前正在构建的REST API中使用。

我在哪里:

  • 用户使用API​​获取个人资料/v1/accounts/PROFILE_USERNAME
  • 上的帐户
  • 每个帐户结果都会显示crypted_id,我刚刚在结果数据中将其命名为id(我不想显示数据库中的真实ID)"id": "Mq5RFENsi4/rw"
  • 然后,用户可以循环访问API请求中的帐户数据并获取crypted_id,然后发出另一个API请求(/v1/accountSiblings/ACCOUNT_CRYPTED_ID(ACCOUNT_CRYPTED_ID = Mq5RFENsi4/rw),以获取有关该帐户的更多信息,例如,有多少兄弟姐妹该帐户有。

我遇到的问题是crypt()没有返回字母数字结果,因此当传递到另一个API请求的URL时数据是iffy,特别是考虑到它可以返回正斜杠和其他字符我不会想。

我可以使用另一个单向加密函数,只使用字母数字作为加密ID吗?

有没有更好的方法来实现我想要做的事情?

希望我能够清楚,谢谢

1 个答案:

答案 0 :(得分:0)

现在凌晨4点,请耐心等待。

我认为仅仅md5()地穴的输出就可以了......

如果解密md5哈希并不重要,因为最终结果基本上是gobbledegook并且是单向哈希。

现在很明显我想到了......