Hàm sha1() trong PHP
Trần Thị Vân
- 1208
- 29/07/2025
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
Ứ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
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
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 *