dongle19863 2016-05-14 04:11
浏览 44
已采纳

如何使用CRYPT_SHA512增加crypt PHP API的salt长度?

<?php

  echo 'SHA-512:' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$');

Output: SHA-512: $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

It uses only 16 character salt : usesomesillystri

Refs: crypt — One-way string hashing

Question:

  • Is it possible to increase the salt length?
  • Is there any drawback if we increase the salt length?

Thanks in advance.

  • 写回答

1条回答 默认 最新

  • duandou8120 2016-05-15 21:57
    关注

    Two questions immediately come to mind:

    1. Why are you using CRYPT_SHA512 instead of CRYPT_BLOWFISH?
    2. Why are you using crypt() instead of password_hash()/password_verify()/password_needs_rehash()?

    One of the reasons you should use password_* instead of crypt() is it will generate a unique random salt for you. You really don't want to hand-roll your own salt generator if your goal is to be secure.

    Is it possible to increase the salt length?

    SHA512Crypt only allows a 16-character salt. Bcrypt uses a 22-character salt (a base64-encoded representation of a 128-bit random string).

    Let's quantify this: A 128-bit salt (powered by a CSPRNG) will repeat exactly once (with 50% probability) after 2^64 (1.8446744e+19, or 18,446,744,073,709,551,616) password hashes are generated.

    That's about 2.6 billion bcrypt hashes for every living person on planet Earth.

    You don't need a longer salt for any appreciable security gain.

    Is there any drawback if we increase the salt length?

    It will silently truncate and, while you may feel smart for seemingly using a longer salt, it will have no effect on the security.

    Further reading: How to safely store your users' passwords in 2016.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码