Hàm sha1() trong PHP

Hàm sha1() trong PHP
Hàm sha1() trong PHP

Chức năng của Hàm sha1() trong PHP

Hàm sha1() trong PHP dùng để băm một chuỗi thành một chuỗi đã mã hóa, chuỗi mã hóa sẽ có 40 ký tự hoặc 20 ký tự, trường hợp true sẽ có 20 ký tự, false sẽ có 40 ký tự, mặc định là false sẽ có 40 ký tự.

Cú pháp của Hàm sha1() trong PHP

sha1("chuỗi_ký_tự");

chuỗi_ký_tự: Chuỗi ký tự cần mã hóa.

Mặc định là false, xuất ra 40 ký tự.

sha1("chuỗi_ký_tự", trường_hợp);

chuỗi_ký_tự: Chuỗi ký tự cần mã hóa.

trường_hợp: true (xuất ra 20 ký tự), false (xuất ra 40 ký tự).

Ví dụ & Ứng dụng của Hàm sha1() trong PHP

Ví dụ Hàm sha1() trong PHP

<?php
// Mặc định xuất ra 40 ký tự
echo sha1("ps12345"); // Kết quả: c7b1275625f2af4c466c824e3f29f401fc908a68
echo "<br>";

//xuất ra 20 ký tự
echo sha1("ps12345",true); // Kết quả:DZ'V%�LFl�N?)����h
echo "<br>";

//xuất ra 40 ký tự
echo sha1("ps12345",false); // Kết quả: c7b1275625f2af4c466c824e3f29f401fc908a68
?>

Kết quả:

c7b1275625f2af4c466c824e3f29f401fc908a68
DZ'V%�LFl�N?)����h
c7b1275625f2af4c466c824e3f29f401fc908a68

Chạy Thử

Ứng dụng Hàm sha1() trong PHP

Mật khẩu khách nhập là ps12345, mình lấy mật khẩu đó mã hóa sha1() và so sánh với mật khẩu đã mã hóa sha1() trong database, nếu giống nhau thì thông báo Đúng mật khẩu, nếu không giống nhau thì thông báo Sai mật khẩu:

<?php
$matkhaunhap = "ps12345";

$matkhausha1 = sha1($matkhaunhap);

$matkhausql = "c7b1275625f2af4c466c824e3f29f401fc908a68";

if($matkhausha1 == $matkhausql){
echo "Đúng mật khẩu";
}else{
echo "Sai mật khẩu";
}
?>

Kết quả:

Đúng mật khẩu

Chạy Thử

Những lưu ý khi sử dụng hàm sha1() trong PHP

Hàm sha1() phù hợp cho một số nhu cầu tạo giá trị băm, nhưng không phải lựa chọn tối ưu cho mọi tình huống liên quan đến bảo mật. Việc sử dụng đúng mục đích giúp tránh biến một hàm xử lý dữ liệu thành điểm yếu cho ứng dụng.

Không nên dùng sha1() để lưu mật khẩu

Không nên sử dụng sha1() để băm mật khẩu người dùng. SHA-1 được thiết kế để tạo giá trị băm nhanh, trong khi việc lưu mật khẩu cần một cơ chế cố ý làm chậm quá trình băm nhằm gây khó khăn cho việc thử hàng loạt mật khẩu.

Trong PHP, nên sử dụng password_hash() để tạo giá trị lưu trữ cho mật khẩu và password_verify() khi kiểm tra mật khẩu đăng nhập. Các hàm này được thiết kế riêng cho bài toán lưu trữ mật khẩu an toàn hơn.

Khi nào có thể sử dụng sha1() để tạo giá trị băm?

sha1() vẫn có thể hữu ích khi cần tạo một chuỗi băm phục vụ những mục đích không yêu cầu khả năng chống tấn công mật khẩu, chẳng hạn tạo mã nhận diện tạm thời hoặc kiểm tra dữ liệu trong các hệ thống cũ cần tương thích với SHA-1.

Tuy nhiên, nếu mục tiêu là bảo vệ dữ liệu trước các cuộc tấn công hiện đại, không nên mặc định chọn SHA-1 chỉ vì hàm này dễ sử dụng. Cần xác định rõ yêu cầu bảo mật và chọn thuật toán phù hợp với mục đích sử dụng.

Lời kết

Cảm ơn các bạn đã tham khảo bài viết Hàm sha1() trong PHP.

  • 0 Bình luận
Trần Thị Vân | Content Creator Web Mới
Trần Thị Vân
Trần Thị Vân là Content Creator tại Web Mới, phụ trách nghiên cứu, biên soạn nội dung và chia sẻ kiến thức về website, SEO, lập trình cùng các xu hướng công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Hàm sha1() trong PHP
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !