Php 如何将一个字符串加密为另一个长度为4到6的字符串

Php 如何将一个字符串加密为另一个长度为4到6的字符串,php,cryptography,Php,Cryptography,我想为我的短信服务将一个字符串加密为另一个长度为4到6的字符串。 例如,我想将UserID加密为字符串xxxx。 因此,用户只需发送文本“MyPage xxxx”,然后发送到我的短信服务,我将解密字符串xxx,以知道谁发送此消息 谢谢大家! 您可以为每个用户生成一个随机的4个字符的标识符(例如注册时),并将其存储在数据库中。然后,当您获得文本时,您可以在数据库中检查标识符,并查看是谁发送了消息。当然,您可以在数据库中存储4-6个字符的唯一字符串,并让用户发送该字符串 但是,这会引起一些问题: 如

我想为我的短信服务将一个字符串加密为另一个长度为4到6的字符串。 例如,我想将UserID加密为字符串xxxx。 因此,用户只需发送文本“MyPage xxxx”,然后发送到我的短信服务,我将解密字符串xxx,以知道谁发送此消息


谢谢大家!

您可以为每个用户生成一个随机的4个字符的标识符(例如注册时),并将其存储在数据库中。然后,当您获得文本时,您可以在数据库中检查标识符,并查看是谁发送了消息。

当然,您可以在数据库中存储4-6个字符的唯一字符串,并让用户发送该字符串

但是,这会引起一些问题:

  • 如果其他用户知道这个秘密字符串并用它发送短信呢?你会相信这些短信是由你假设的用户发送的吗?我不这么认为

  • 如果有人向你的服务器发送短信,你大概会知道他们的手机号码,短信会提供。在这种情况下,为什么还要麻烦用户提供更多的东西呢?另外,伪造发送短信的电话号码也相对困难。别误会,发送电话号码是可以伪造的,但我认为这比你的方法更安全

  • 要求用户键入他们需要记住的任何内容都太难了。他们会忘记,会犯错误,会把事情搞砸。不要这样做,让它完全自动化,仅仅依靠发送电话号码


  • 您可以为数据库中的每个用户生成一个随机字符串(最好是在创建他们的帐户时)。当有人请求
    MyPage(key)
    时,您只需查找哪个用户拥有该密钥。