【问题标题】:PHP char type encryptionPHP char 类型加密
【发布时间】:2012-07-27 18:21:24
【问题描述】:

在完成我的网站 java 登录程序和页面时,我决定通过 URL 将加密值传递给验证页面作为额外的安全线。我有一个很久以前写的加密算法,我认识的人还没有破解过,所以我想使用它。但我需要字符才能正常工作。据我所知,PHP 没有 char 类型。所以我的问题是首先,它们是 char 类型,其次,是否可以将其转换为 int?旁注:登录是一个签名的小程序,因此所有页面都使用 PHP。编辑:忘了提到这只是加密的基础,我将添加到算法中。

【问题讨论】:

  • “我有一个加密算法……我认识的人还没有破解过”不要自欺欺人。
  • 如果您想测试它的安全性,请让其他人尝试破解它。如果他们不能,那说明你的算法很好。
  • 当我第一次写它的时候,我让我的老师和我编程课的每个人都测试了它。他们不能。然后我让一年后班上最好的学生再试一次。他还是做不到。这够好吗?

标签: php variables char


【解决方案1】:

您可以通过$str[$index] 引用字符串$str 中的字符。

ord 函数将返回一个字符的整数值:

$val = ord($str[$index]); 

chr 函数则相反:

$char = chr($val);//$char == $str[$index]

【讨论】:

  • 非常感谢。这将适用于第一部分,但我可以将其更改为 int,即$val = (int) ord($str[$index]);
【解决方案2】:

您可以通过引用$s[$i]逐个字符地访问字符串$sord($s)获取字符的ASCII值,chr($n)获取ASCII值对应的字符。

不要使用自己的加密原语,除非您知道自己在做什么!使用 PHP 自己的已知强算法实现(例如 AES-256)。仅仅因为认识的人没有破解你的自定义算法并不意味着其他人不能。

【讨论】:

    【解决方案3】:

    PHP 中没有 char 类型,string 类型也不容易转换为 int。 PHP 处理动态类型杂耍,因此不使用类型声明。

    在旁注中,“还没有人破解 [我的加密算法]”并不一定意味着将来不会有人破解。如果您要加密重要的东西,请使用标准加密算法 - 它们之所以成为标准是有原因的。

    【讨论】:

    • 对不起,我忘了说这只是加密的基础。我很快决定进一步加密它。我现在将对其进行编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2011-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多