Hướng dẫn sha3 in php - Người ta đồn rằng tôi yêu

Có khuôn khổ hoặc chức năng nào cho phép tôi sử dụng SHA3-512 không? Tôi không muốn một phần mở rộng như Strawbrary

Nội dung chính ShowShow

  • Đăng nhập để trả lời câu hỏi
  • Có thể bạn quan tâm
  • # Description
  • # Parameters
  • # Return Values
  • Mã hóa với $raw_output = false
  • Mã hóa với $raw_output = true
  • Sử dụng bcrypt trong PHP 5.5+
  • Hai lưu ý của bcrypt
  • Chỉnh sửa quan trọng:

  • php
  • hash
  • sha-3

16 hữu ích 3 bình luận 28k xem chia sẻ 3 bình luận 28k xem chia sẻ

answer

14

Hướng dẫn sha3 in php - Người ta đồn rằng tôi yêu

Nó có thể.

Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây :

  • SHA3-224 / 256/384/512
  • SHAKE128 / 256 (kích thước đầu ra tùy ý)
  • LGPL 3+
  • Hoạt động trong
    ";
        print_r (hash_algos());
        echo "
    "; ?> 0(chậm hơn đáng kể trên cũ hơn
    ";
        print_r (hash_algos());
        echo "
    "; ?> 1)
  • Không cần phần mở rộng.
  • Kiểm tra vừa phải.
  • Dựa trên triển khai tham chiếu (miền công cộng) trong
    ";
        print_r (hash_algos());
        echo "
    "; ?> 2.
  • Kích thước đầu vào tùy ý.

Nó là một triển khai đơn giản và nhanh chóng trong

";
    print_r (hash_algos());
    echo "
"; ?> 1(có nghĩa là chậm hơn nhiều so với C ). Vì đây hoàn toàn là "CPU-ràng buộc",
";
    print_r (hash_algos());
    echo "
"; ?> 4chạy nhanh hơn gấp 4 lần
";
    print_r (hash_algos());
    echo "
"; ?> 5. (55kB / s tại đây)chậm hơn nhiều so với C ). Vì đây hoàn toàn là "CPU-ràng buộc",
";
    print_r (hash_algos());
    echo "
"; ?> 4chạy nhanh hơn gấp 4 lần
";
    print_r (hash_algos());
    echo "
"; ?> 5. (55kB / s tại đây)

Tốt với một đầu vào nhỏ. Xử lý chính xác một đầu vào khổng lồ, chỉ cần

";
    print_r (hash_algos());
    echo "
"; ?> 6vài phút.

Tôi hy vọng nó sẽ giúp.

14 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

14

Nó có thể.

Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây : 3 bình luận chia sẻ

answer

5

Nó có thể.

Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây :hash_algos () chức năng sẽ đầu ra của hệ thống thuật toán băm sẵn. Đoạn mã sau sẽ xuất ra các thuật toán băm có sẵn của hệ thống của bạn:

";
    print_r (hash_algos());
    echo "
"; ?>

SHA3-224 / 256/384/512

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    ...
)

SHAKE128 / 256 (kích thước đầu ra tùy ý) 3 bình luận chia sẻ

answer

-5

Nó có thể.

http://us3.php.net/crypt

Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây : 3 bình luận chia sẻ

Đăng nhập để trả lời câu hỏi

Có thể bạn quan tâm

# Description

SHA3-224 / 256/384/512đã được mã hóa theo tiêu chuẩn sha1.

SHAKE128 / 256 (kích thước đầu ra tùy ý)

  • # Description
  • Hoạt động trong
    ";
        print_r (hash_algos());
        echo "
    "; ?> 0(chậm hơn đáng kể trên cũ hơn
    ";
        print_r (hash_algos());
        echo "
    "; ?> 1)
  • # Return Values
  • Mã hóa với $raw_output = false
  • Mã hóa với $raw_output = true
  • Sử dụng bcrypt trong PHP 5.5+
  • Hai lưu ý của bcrypt
  • Chỉnh sửa quan trọng:

SHAKE128 / 256 (kích thước đầu ra tùy ý)

  • # Description
  • # Parameters
  • # Return Values
  • Mã hóa với $raw_output = false
  • Mã hóa với $raw_output = true
  • Sử dụng bcrypt trong PHP 5.5+
  • Hai lưu ý của bcrypt
  • Chỉnh sửa quan trọng:

php

# Parameters

hash: string sha1 ( string $str [, bool $raw_output = false ] )

16 hữu ích 3 bình luận 28k xem chia sẻ freetuts.net, không được copy dưới mọi hình thức.

answer

  • Nó có thể.là chuỗi cần mã hóa
  • Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây :có giá trị TRUE hoặc FALSE, mặc định là false.
    • SHA3-224 / 256/384/512đã mã hóa)
    • SHAKE128 / 256 (kích thước đầu ra tùy ý)đã mã hóa)

# Return Values

Hoạt động trong

";
    print_r (hash_algos());
    echo "
"; ?> 0(chậm hơn đáng kể trên cũ hơn
";
    print_r (hash_algos());
    echo "
"; ?> 1)

Không cần phần mở rộng.

Mã hóa với $raw_output = false

$str = 'freetuts.net';

echo sha1($str);
// kêt quả: 8d9fa09de2e997d8fbb544326b84d1f894cd3ca3

echo sha1($str, false);
// kêt quả: 8d9fa09de2e997d8fbb544326b84d1f894cd3ca3

Mã hóa với $raw_output = true

$str = 'freetuts.net';

echo sha1($str, true);
// kêt quả: Ÿ âé—ØûµD2k„Ñø”Í<£

Sử dụng bcrypt trong PHP 5.5+

answer

111

Nó có thể.

Sử dụng bcrypt trong PHP 5.5+

Hai lưu ý của bcrypt

Chỉnh sửa quan trọng:

php

hash

Hai lưu ý của bcrypt

  1. Chỉnh sửa quan trọng:
  2. php

hash

16 hữu ích 3 bình luận 28k xem chia sẻ

answer

  • Nó có thể.
  • Có lẽ quá muộn, nhưng tôi đã làm việc để pure-PHPtriển khai ở đây :

SHA3-224 / 256/384/512 - Sử dụng bcrypt .

SHAKE128 / 256 (kích thước đầu ra tùy ý) 5 bình luận chia sẻ

answer

23

Nó có thể.

  1. Nếu bạn cho phép người dùng sử dụng mật khẩu yếu như Chúa, tình yêu, chiến tranh, hòa bình thì bất kể mã hóa, bạn vẫn sẽ cho phép người dùng nhập mật khẩu không phải mã băm và những mật khẩu này thường được sử dụng trước, do đó điều này KHÔNG xảy ra. liên quan đến mã hóa.KHÔNG xảy ra. liên quan đến mã hóa.

  2. Nếu bạn không sử dụng SSL hoặc không có chứng chỉ thì những kẻ tấn công đang lắng nghe lưu lượng truy cập sẽ có thể lấy mật khẩu và mọi nỗ lực mã hóa bằng javascript hoặc tương tự là phía máy khách và dễ dàng bẻ khóa và khắc phục. Một lần nữa, điều này sẽ KHÔNG liên quan gì đến mã hóa dữ liệu ở phía máy chủ.KHÔNG liên quan gì đến mã hóa dữ liệu ở phía máy chủ.

  3. Các cuộc tấn công bạo lực sẽ tận dụng các mật khẩu yếu và một lần nữa vì bạn cho phép người dùng nhập dữ liệu nếu bạn không có giới hạn đăng nhập là 3 hoặc thậm chí nhiều hơn một chút thì vấn đề sẽ KHÔNG liên quan gì đến mã hóa dữ liệu.KHÔNG liên quan gì đến mã hóa dữ liệu.

  4. Nếu cơ sở dữ liệu của bạn bị xâm phạm thì rất có thể mọi thứ đã bị xâm phạm, bao gồm cả các kỹ thuật băm của bạn cho dù bạn đã làm nó khó hiểu đến mức nào. Một lần nữa, đây có thể là một cuộc tấn công XSS của nhân viên bất mãn hoặc tiêm sql hoặc một số cuộc tấn công khác không liên quan đến mã hóa mật khẩu của bạn.

Tôi tin rằng bạn vẫn nên mã hóa nhưng điều duy nhất tôi có thể thấy là mã hóa làm được là ngăn những người đã có hoặc bằng cách nào đó giành được quyền truy cập vào cơ sở dữ liệu chỉ đọc to mật khẩu. Nếu đó là một người nào đó trái phép trên cơ sở dữ liệu thì bạn có vấn đề lớn hơn phải lo lắng đó là lý do tại sao Sony đã lấy vì họ nghĩ rằng một mật khẩu được mã hóa sẽ bảo vệ mọi thứ bao gồm cả số thẻ tín dụng, tất cả những gì nó làm là bảo vệ một trường đó chính là nó.

Lợi ích thuần túy duy nhất mà tôi có thể thấy đối với việc mã hóa mật khẩu phức tạp trong cơ sở dữ liệu là làm chậm trễ nhân viên hoặc những người khác có quyền truy cập vào cơ sở dữ liệu chỉ đọc ra mật khẩu. Vì vậy, nếu đó là một dự án nhỏ hoặc một cái gì đó, tôi sẽ không lo lắng nhiều về bảo mật ở phía máy chủ thay vào đó tôi sẽ lo lắng nhiều hơn về việc bảo mật bất kỳ thứ gì mà máy khách có thể gửi đến máy chủ chẳng hạn như tiêm sql, các cuộc tấn công XSS hoặc rất nhiều cách khác bạn có thể bị xâm phạm. Nếu ai đó không đồng ý, tôi mong muốn được đọc theo cách mà mật khẩu siêu mã hóa là bắt buộc từ phía khách hàng.

Lý do tôi muốn thử và làm rõ điều này là vì mọi người thường tin rằng mật khẩu được mã hóa có nghĩa là họ không phải lo lắng về việc nó bị xâm phạm và họ bỏ lo lắng về việc bảo mật trang web.

23 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

15

Như Johannes Gorset đã chỉ ra, bài đăng của Thomas Ptacek từ Matasano Security giải thích tại sao các hàm băm đơn giản, có mục đích chung như MD5, SHA1, SHA256 và SHA512 là những lựa chọn băm mật khẩu kém .các hàm băm đơn giản, có mục đích chung như MD5, SHA1, SHA256 và SHA512 là những lựa chọn băm mật khẩu kém .

Tại sao? Chúng quá nhanh - bạn có thể tính toán ít nhất 1.000.000 băm MD5 một giây cho mỗi lõi bằng một máy tính hiện đại, vì vậy tính bạo lực là khả thi đối với hầu hết các mật khẩu mà mọi người sử dụng. Và đó là ít hơn nhiều so với một cụm máy chủ bẻ khóa dựa trên GPU!

Ướp muối mà không kéo dài phím chỉ có nghĩa là bạn không thể tính toán trước bảng cầu vồng, bạn cần phải xây dựng đặc biệt cho loại muối cụ thể đó. Nhưng nó sẽ không thực sự làm cho mọi thứ khó hơn nhiều.

Người dùng @Will nói:

Mọi người đang nói về điều này như thể họ có thể bị tấn công qua internet. Như đã nêu, việc hạn chế các nỗ lực khiến không thể bẻ khóa mật khẩu qua Internet và không liên quan gì đến hàm băm.

Họ không cần. Rõ ràng, trong trường hợp của LinkedIn, họ đã sử dụng lỗ hổng SQL injection phổ biến để lấy bảng DB đăng nhập và bẻ khóa hàng triệu mật khẩu ngoại tuyến.

Sau đó, anh ta quay lại kịch bản tấn công ngoại tuyến:

Bảo mật thực sự phát huy tác dụng khi toàn bộ cơ sở dữ liệu bị xâm phạm và sau đó tin tặc có thể thực hiện 100 triệu lần nhập mật khẩu mỗi giây đối với băm md5. SHA512 chậm hơn khoảng 10.000 lần.

Không, SHA512 không chậm hơn MD5 10000 lần - nó chỉ mất khoảng gấp đôi. Mặt khác, Crypt / SHA512 là một con quái vật rất khác, giống như đối tác BCrypt của nó, thực hiện kéo dài khóa , tạo ra một hàm băm rất khác với một muối ngẫu nhiên được tích hợp sẵn và sẽ mất bất kỳ thứ gì nhiều hơn từ 500 đến 999999 lần để tính toán (kéo dài có thể điều chỉnh được).SHA512 không chậm hơn MD5 10000 lần - nó chỉ mất khoảng gấp đôi. Mặt khác, Crypt / SHA512 là một con quái vật rất khác, giống như đối tác BCrypt của nó, thực hiện kéo dài khóa , tạo ra một hàm băm rất khác với một muối ngẫu nhiên được tích hợp sẵn và sẽ mất bất kỳ thứ gì nhiều hơn từ 500 đến 999999 lần để tính toán (kéo dài có thể điều chỉnh được).

SHA512 => aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
Crypt/SHA512 => $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Vì vậy, lựa chọn cho PHP là Crypt / Blowfish (BCrypt), Crypt / SHA256 hoặc Crypt / SHA512. Hoặc ít nhất là Crypt / MD5 (PHK). Xem www.php.net/manual/en/ Chức năng.crypt.php

15 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

13

Như Johannes Gorset đã chỉ ra, bài đăng của Thomas Ptacek từ Matasano Security giải thích tại sao các hàm băm đơn giản, có mục đích chung như MD5, SHA1, SHA256 và SHA512 là những lựa chọn băm mật khẩu kém .

Như một lưu ý thêm, FRKT, vui lòng chỉ cho tôi nơi ai đó có thể dễ dàng bẻ khóa băm SHA256 muối? Tôi thực sự rất quan tâm để xem điều này.

Chỉnh sửa quan trọng:

Trong tương lai, vui lòng sử dụng

";
    print_r (hash_algos());
    echo "
"; ?> 8như một hàm băm cứng. Thông tin thêm có thể được tìm thấy ở đây .


Chỉnh sửa về muối:

Sử dụng một số ngẫu nhiên hoặc luồng byte ngẫu nhiên, v.v. Bạn có thể sử dụng trường duy nhất của bản ghi trong cơ sở dữ liệu của mình làm muối, theo cách này, muối sẽ khác nhau trên mỗi người dùng.

13 hữu ích 5 bình luận chia sẻ 5 bình luận chia sẻ

answer

4

Điều mà mọi người dường như còn thiếu là nếu hacker có quyền truy cập vào cơ sở dữ liệu, anh ta có thể cũng có quyền truy cập vào tệp php đã băm mật khẩu và có thể chỉ cần sửa đổi nó để gửi cho anh ta tất cả các tổ hợp mật khẩu tên người dùng thành công. Nếu anh ta không có quyền truy cập vào thư mục web, anh ta luôn có thể chỉ cần chọn một mật khẩu băm nó và ghi nó vào cơ sở dữ liệu. Nói cách khác, thuật toán băm không thực sự quan trọng như bảo mật hệ thống và việc hạn chế các nỗ lực đăng nhập cũng nếu bạn không sử dụng SSL thì kẻ tấn công chỉ có thể nghe ngóng kết nối để lấy thông tin. Trừ khi bạn cần thuật toán mất nhiều thời gian để tính toán (cho mục đích của riêng bạn) thì SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.

Như một biện pháp bảo mật bổ sung, hãy thiết lập một tập lệnh (bash, batch, python, v.v.) hoặc chương trình và đặt cho nó một cái tên khó hiểu và kiểm tra xem login.php có thay đổi hay không (kiểm tra dấu ngày / giờ) và gửi email cho bạn nếu nó có. Cũng có thể nên ghi lại tất cả các lần đăng nhập bằng quyền quản trị và ghi lại tất cả các lần đăng nhập không thành công vào cơ sở dữ liệu và gửi nhật ký qua email cho bạn.

4 hữu ích 2 bình luận chia sẻ 2 bình luận chia sẻ

answer

3

Điều mà mọi người dường như còn thiếu là nếu hacker có quyền truy cập vào cơ sở dữ liệu, anh ta có thể cũng có quyền truy cập vào tệp php đã băm mật khẩu và có thể chỉ cần sửa đổi nó để gửi cho anh ta tất cả các tổ hợp mật khẩu tên người dùng thành công. Nếu anh ta không có quyền truy cập vào thư mục web, anh ta luôn có thể chỉ cần chọn một mật khẩu băm nó và ghi nó vào cơ sở dữ liệu. Nói cách khác, thuật toán băm không thực sự quan trọng như bảo mật hệ thống và việc hạn chế các nỗ lực đăng nhập cũng nếu bạn không sử dụng SSL thì kẻ tấn công chỉ có thể nghe ngóng kết nối để lấy thông tin. Trừ khi bạn cần thuật toán mất nhiều thời gian để tính toán (cho mục đích của riêng bạn) thì SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.

Như một biện pháp bảo mật bổ sung, hãy thiết lập một tập lệnh (bash, batch, python, v.v.) hoặc chương trình và đặt cho nó một cái tên khó hiểu và kiểm tra xem login.php có thay đổi hay không (kiểm tra dấu ngày / giờ) và gửi email cho bạn nếu nó có. Cũng có thể nên ghi lại tất cả các lần đăng nhập bằng quyền quản trị và ghi lại tất cả các lần đăng nhập không thành công vào cơ sở dữ liệu và gửi nhật ký qua email cho bạn.

4 hữu ích 2 bình luận chia sẻ

Mọi người đang nói về điều này như thể họ có thể bị tấn công qua internet. Như đã nêu, việc hạn chế các nỗ lực khiến không thể bẻ khóa mật khẩu qua Internet và không liên quan gì đến hàm băm. 0 bình luận chia sẻ

answer

1

Điều mà mọi người dường như còn thiếu là nếu hacker có quyền truy cập vào cơ sở dữ liệu, anh ta có thể cũng có quyền truy cập vào tệp php đã băm mật khẩu và có thể chỉ cần sửa đổi nó để gửi cho anh ta tất cả các tổ hợp mật khẩu tên người dùng thành công. Nếu anh ta không có quyền truy cập vào thư mục web, anh ta luôn có thể chỉ cần chọn một mật khẩu băm nó và ghi nó vào cơ sở dữ liệu. Nói cách khác, thuật toán băm không thực sự quan trọng như bảo mật hệ thống và việc hạn chế các nỗ lực đăng nhập cũng nếu bạn không sử dụng SSL thì kẻ tấn công chỉ có thể nghe ngóng kết nối để lấy thông tin. Trừ khi bạn cần thuật toán mất nhiều thời gian để tính toán (cho mục đích của riêng bạn) thì SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.

Như một biện pháp bảo mật bổ sung, hãy thiết lập một tập lệnh (bash, batch, python, v.v.) hoặc chương trình và đặt cho nó một cái tên khó hiểu và kiểm tra xem login.php có thay đổi hay không (kiểm tra dấu ngày / giờ) và gửi email cho bạn nếu nó có. Cũng có thể nên ghi lại tất cả các lần đăng nhập bằng quyền quản trị và ghi lại tất cả các lần đăng nhập không thành công vào cơ sở dữ liệu và gửi nhật ký qua email cho bạn.

4 hữu ích 2 bình luận chia sẻ

Mọi người đang nói về điều này như thể họ có thể bị tấn công qua internet. Như đã nêu, việc hạn chế các nỗ lực khiến không thể bẻ khóa mật khẩu qua Internet và không liên quan gì đến hàm băm.

Muối là phải có, nhưng độ phức tạp hoặc nhiều muối thậm chí không quan trọng. Chỉ riêng muối nào cũng có thể ngăn kẻ tấn công sử dụng bàn cầu vồng làm sẵn. Một muối duy nhất cho mỗi người dùng ngăn kẻ tấn công tạo một bảng cầu vồng mới để sử dụng chống lại toàn bộ cơ sở người dùng của bạn.

Bảo mật thực sự phát huy tác dụng khi toàn bộ cơ sở dữ liệu bị xâm phạm và sau đó tin tặc có thể thực hiện 100 triệu lần nhập mật khẩu mỗi giây đối với băm md5. SHA512 chậm hơn khoảng 10.000 lần. Một mật khẩu phức tạp với sức mạnh ngày nay vẫn có thể mất 100 năm để thực thi với md5 và sẽ lâu gấp 10.000 lần với SHA512. Các muối không ngăn chặn được sự tàn bạo vì chúng luôn phải được biết đến, điều này nếu kẻ tấn công tải xuống cơ sở dữ liệu của bạn, thì có thể hắn ta đã ở trong hệ thống của bạn.

3 hữu ích 0 bình luận chia sẻ 3 bình luận chia sẻ

answer

1

Điều mà mọi người dường như còn thiếu là nếu hacker có quyền truy cập vào cơ sở dữ liệu, anh ta có thể cũng có quyền truy cập vào tệp php đã băm mật khẩu và có thể chỉ cần sửa đổi nó để gửi cho anh ta tất cả các tổ hợp mật khẩu tên người dùng thành công. Nếu anh ta không có quyền truy cập vào thư mục web, anh ta luôn có thể chỉ cần chọn một mật khẩu băm nó và ghi nó vào cơ sở dữ liệu. Nói cách khác, thuật toán băm không thực sự quan trọng như bảo mật hệ thống và việc hạn chế các nỗ lực đăng nhập cũng nếu bạn không sử dụng SSL thì kẻ tấn công chỉ có thể nghe ngóng kết nối để lấy thông tin. Trừ khi bạn cần thuật toán mất nhiều thời gian để tính toán (cho mục đích của riêng bạn) thì SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.

Như một biện pháp bảo mật bổ sung, hãy thiết lập một tập lệnh (bash, batch, python, v.v.) hoặc chương trình và đặt cho nó một cái tên khó hiểu và kiểm tra xem login.php có thay đổi hay không (kiểm tra dấu ngày / giờ) và gửi email cho bạn nếu nó có. Cũng có thể nên ghi lại tất cả các lần đăng nhập bằng quyền quản trị và ghi lại tất cả các lần đăng nhập không thành công vào cơ sở dữ liệu và gửi nhật ký qua email cho bạn. 0 bình luận chia sẻ

answer

1

Điều mà mọi người dường như còn thiếu là nếu hacker có quyền truy cập vào cơ sở dữ liệu, anh ta có thể cũng có quyền truy cập vào tệp php đã băm mật khẩu và có thể chỉ cần sửa đổi nó để gửi cho anh ta tất cả các tổ hợp mật khẩu tên người dùng thành công. Nếu anh ta không có quyền truy cập vào thư mục web, anh ta luôn có thể chỉ cần chọn một mật khẩu băm nó và ghi nó vào cơ sở dữ liệu. Nói cách khác, thuật toán băm không thực sự quan trọng như bảo mật hệ thống và việc hạn chế các nỗ lực đăng nhập cũng nếu bạn không sử dụng SSL thì kẻ tấn công chỉ có thể nghe ngóng kết nối để lấy thông tin. Trừ khi bạn cần thuật toán mất nhiều thời gian để tính toán (cho mục đích của riêng bạn) thì SHA-256 hoặc SHA-512 với một muối cụ thể của người dùng là đủ.

Như một biện pháp bảo mật bổ sung, hãy thiết lập một tập lệnh (bash, batch, python, v.v.) hoặc chương trình và đặt cho nó một cái tên khó hiểu và kiểm tra xem login.php có thay đổi hay không (kiểm tra dấu ngày / giờ) và gửi email cho bạn nếu nó có. Cũng có thể nên ghi lại tất cả các lần đăng nhập bằng quyền quản trị và ghi lại tất cả các lần đăng nhập không thành công vào cơ sở dữ liệu và gửi nhật ký qua email cho bạn.

  • 4 hữu ích 2 bình luận chia sẻ
  • Mọi người đang nói về điều này như thể họ có thể bị tấn công qua internet. Như đã nêu, việc hạn chế các nỗ lực khiến không thể bẻ khóa mật khẩu qua Internet và không liên quan gì đến hàm băm.
  • http://en.wikipedia.org/wiki/Bcrypt
  • http://en.wikipedia.org/wiki/PBKDF2

MD5, SHA1 và SHA256 là chức năng phân tích thông báo, không phải là hàm băm mật khẩu. Chúng không phù hợp cho mục đích này.

Việc chuyển từ MD5 sang SHA1 hoặc SHA512 sẽ không cải thiện được tính bảo mật của công trình. Tính toán hàm băm SHA256 hoặc SHA512 rất nhanh. Kẻ tấn công có phần cứng thông thường vẫn có thể thử hàng chục triệu (với một CPU) hoặc thậm chí hàng tỷ (với một GPU) băm mỗi giây. Các chức năng băm mật khẩu tốt bao gồm một yếu tố công việc để làm chậm các cuộc tấn công từ điển.Các chức năng băm mật khẩu tốt bao gồm một yếu tố công việc để làm chậm các cuộc tấn công từ điển.

Đây là một gợi ý cho các lập trình viên PHP: đọc Câu hỏi thường gặp về PHP sau đó sử dụng password_hash () .

1 hữu ích 0 bình luận chia sẻ 0 bình luận chia sẻ

answer

0

Hãy giả định điểm tiếp theo: tin tặc đánh cắp cơ sở dữ liệu của chúng tôi bao gồm người dùng và mật khẩu (được mã hóa). Và các hacker đã tạo một tài khoản giả với mật khẩu mà chúng biết.

MD5 yếu vì nó ngắn và phổ biến và thực tế mọi thế hệ băm không có mật khẩu đều là điểm yếu của một cuộc tấn công từ điển. Nhưng..

Vì vậy, giả sử rằng chúng tôi vẫn đang sử dụng MD5 với SALT. Tin tặc không biết SALT nhưng chúng biết mật khẩu của một người dùng cụ thể. Vì vậy, họ có thể kiểm tra: ????? 12345 đâu là mật khẩu biết và ????? là muối. Các tin tặc sớm hay muộn cũng có thể đoán được MUỐI.

Tuy nhiên, nếu chúng tôi sử dụng MD5 + SALT và chúng tôi đã áp dụng MD5, thì không có cách nào để khôi phục thông tin. Tuy nhiên, tôi nhắc lại, MD5 vẫn còn ngắn.

Ví dụ: giả sử mật khẩu của tôi là: 12345. SALT là BILLCLINTON

md5: 827ccb0eea8a706c4c34a16891f84e7b

md5 với băm: 56adb0f19ac0fb50194c312d49b15378

mD5 với mã băm trên md5: 28a03c0bc950decdd9ee362907d1798a Tôi đã cố gắng sử dụng các dịch vụ trực tuyến đó và tôi không tìm thấy dịch vụ nào có thể bẻ khóa nó. Và MD5 duy nhất của nó! (có thể như ngày hôm nay, nó sẽ có thể crack được vì tôi đã tạo md5 trực tuyến)

Nếu bạn muốn quá mức cần thiết thì SHA256 là quá đủ nếu nó được áp dụng với một muối và hai lần.

tldr MD5 (HASH + MD5 (password)) = ok nhưng ngắn gọn, SHA256 là quá đủ.

0 hữu ích 1 bình luận chia sẻ 1 bình luận chia sẻ

answer

0

Hãy giả định điểm tiếp theo: tin tặc đánh cắp cơ sở dữ liệu của chúng tôi bao gồm người dùng và mật khẩu (được mã hóa). Và các hacker đã tạo một tài khoản giả với mật khẩu mà chúng biết.

password_hash() example using Argon2i


The above example will output something similar to:

Argon2i hash: $argon2i$v=19$m=1024,t=2,p=2$YzJBSzV4TUhkMzc3d3laeg$zqU/1IN0/AogfP4cmSJI1vc8lpXRW9/S0sYY2i2jHT0

MD5 yếu vì nó ngắn và phổ biến và thực tế mọi thế hệ băm không có mật khẩu đều là điểm yếu của một cuộc tấn công từ điển. Nhưng.. 0 bình luận chia sẻ