Hướng dẫn dùng sha512 hash trong PHP
Trong mật mã học, MD5 (viết tắt của tiếng Anh Message-Digest algorithm 5, giải thuật Tiêu hóa tin 5) là một Bộ tạo Hash mật mã được sử dụng phổ biến với giá trị Hash dài 128-bit. MD5 đã được dùng trong nhiều ứng dụng bảo mật, và cũng được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin. Một bảng băm MD5 thường được diễn tả bằng một số hệ thập lục phân 32 ký tự. Vì MD5 chỉ dò qua dữ liệu một lần, nếu hai tiền tố với cùng bảng băm được xây nên, thì cùng một hậu tố có thể cùng được thêm vào để khiến cho đụng độ dễ xảy ra. Tức là hai dữ liệu vào (input) X và Y hoàn toàn khác nhau nhưng có thể ra (output) được một md5 hash giống nhau . Tuy nhiên xác suất để xảy ra điều này là khá nhỏ. MD5 thướng được sử dụng để mã hóa password của các ứng dụng. 2. Mã hóa SHA SHA ( Secure Hash Algorithm) là năm thuật giải được dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu đã được mã hóa. Năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit). Thuật giải SHA là thuật giải băm mật được phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST). Bốn thuật giải sau thường được gọi chung là SHA-2. 3. Cách sử dụng các giải thuật mã hóa MD5 và SHA trong C# Để sử dụng các giải thuật MD5 hoặc SHA trong C# bạn có thể sử dụng namespace. using System.Security.Cryptography; Cách sử dụng Viết hàm mã hóa: Mã hóa bằng giải thuật MD5 private string EncodeMD5(string pass) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bs = System.Text.Encoding.UTF8.GetBytes(pass); bs = md5.ComputeHash(bs); System.Text.StringBuilder s = new System.Text.StringBuilder(); foreach (byte b in bs) { s.Append(b.ToString("x1").ToLower()); } pass = s.ToString(); return pass; Có thể bạn quan tâm} Mã hóa bằng giải thuật SHA private string EncodeSHA1(string pass) { SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider(); byte[] bs = System.Text.Encoding.UTF8.GetBytes(pass); bs = sha1.ComputeHash(bs); System.Text.StringBuilder s = new System.Text.StringBuilder(); foreach (byte b in bs) { s.Append(b.ToString("x1").ToLower()); } pass = s.ToString(); return pass; } Để sử dụng các giải thuật MD5 hoặc SHA trong namespace using System.Security.Cryptography; Chúng ta phải sử dụng đối tượng SHA1CryptoServiceProvider hoặc MD5CryptoServiceProvider. Hai đối tượng này cho phép bạn có thể băm (Hash) một mảng kiểu byte thông qua hàm ComputeHash. Kết quả trả về sẽ là một mảng kiểu Byte đã được mã hóa. Việc cuối cùng của chúng ta là chuyển thành kiểu dữ liệu String để trả về. 4. Ứng dụng Chúng ta thiết kế một demo nhỏ để minh họa cho 2 giải thuật này. Dùng chương trình Visual Studio 2008 để thiết kế một Form có giao diện như sau: Hình mẫu:
Yêu cầu chương trình. Sau khi nhập username và password. Nhấn nút login chương trình sẽ hiển thị một thông điệp cho thấy password đã được mã hóa thành 2 chuỗi khác nhau tương ứng với 2 giải thuật khác nhau. Kết quả sau khi nhập password là admin:
Hướng dẫn thực hiện: Sau khi đã thiết kế xong giao diện nhấn F7 để coding cho form. B1: Bổ sung namespace còn thiếu.
Bước 2. Viết 2 hàm mã hóa theo mẫu đã thiết kế ở trên có kết quả trả về kiểu string Bước 3.Khai báo 2 field strUsername và strPassword để lưu trữ thông tin username và password Bước 4. Viết code cho sự kiện Click private void btnLogin_Click(object sender, EventArgs e) { strUsername =txtUsername.Text.ToString(); string strPass = txtPassword.Text.ToString().Trim(); ; string strPasswordMD5 = EncodeMD5(strPass); string strPasswordSHA1 = EncodeSHA1(strPass); MessageBox.Show("Bạn đang đăng nhập với User: " + strUsername + " và Pass đã được mã hóa MD5 là: " + strPasswordMD5 + " và Pass đã được mã hóa SHA1 là: " + strPasswordSHA1 , "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information ); } Bước 4. Kết thúc. Bài viết trên chỉ demo cơ bản 2 giải thuật. Ngoài ra các bạn có thể tìm hiểu nhiều chức năng khác trong ngôn ngữ C#, hoặc cũng có thể viết lại 2 giải thuật trên để sử dụng. |
Bài Viết Liên Quan
Xử lý số liệu bằng python
Nếu bạn bắt đầu tìm hiểu và làm việc dữ liệu dạng bảng trong Python, thì nhiều khả năng bạn sẽ bắt đầu với thư viện tên là Pandas, bởi vì Pandas là ...
Hướng dẫn hmac sha256 javascript
I want to compute the SHA256 based HMAC for some key and a message in front-end using JavaScript. Its easily done in Python like so:import hmac h = hmac.new(bkey, bmessage, ...
Hướng dẫn dùng list indices python
Hàm List index() trong Python trả về chỉ mục thấp nhất trong list mà tại đó obj xuất hiện. Nếu không tìm thấy, phương thức sẽ tạo một exception.Cú phápCú ...
Hướng dẫn dùng .lt python
Đã đăng vào thg 3 8, 2018 3:22 SA 4 phút đọc Sau bài viết trước, chúng ta đã làm quen các câu lệnh cơ bản trong Python. Và ở bài viết này tập trung vào tìm ...
Hướng dẫn dùng 512 simplified trong PHP
Floating point numbers (also known as floats, doubles, or real numbers) can be specified using any of the following syntaxes: Formally as of PHP 7.4.0 (previously, underscores have not been ...
Hướng dẫn dùng timestamp format trong PHP
Blog Tin tức 26/07/2021 03:01Ngày tháng là một phần của cuộc sống hàng ngày, do vậy việc xử lý ngày tháng cực kỳ quan trọng khi bạn xử lý các bài viết và ...
Hướng dẫn python flask admin
Có những lúc chúng tôi muốn phát triển ứng dụng nhưng chúng tôi không muốn bắt đầu từ đầu, vì điều này có vô số khung trên thị trường, tuy nhiên khung ...
Hướng dẫn drupal vs wordpress
Th7 27, 2022 Hai G. 12ít nhất Đọc Chọn CMS phù hợp cho website của bạn là bước rất quan trọng. Nếu bạn đang muốn xây dựng site từ đầu, vậy chắc hẵn bạn ...
Hướng dẫn dùng operator precendence trong PHP
Anonymous ¶18 years ago of course this should be clear, but i think it has to be mentioned espacially:AND is not the same like &&for example:is not the same likethe first thing is(a and b) or cthe ...
Hướng dẫn dùng escaping characters python
Nội dung chínhKý tự đặc biệt (escape sequence) trong python là gìCách sử dụng ký tự đặc biệt trong pythonSử dụng ký tự đặc biệt để xuống dòng khi viết ...
Tai nghe bluetooth thể thao samsung gear iconx 2023
(Techz.vn) Samsung chính thức ra mắt mẫu vòng đeo tay và cặp tai nghe bluetooth hiện đại với mục tiêu chăm ssco sức khỏe người tiêu dùng tốt hơn. Bài viết liên ...
Hướng dẫn dùng php dallas trong PHP
Định nghĩa class trong PHPCác đối tượng trong PHP đều được dựa trên class. Nếu bạn muốn khởi tạo một đối tượng trong PHP, bạn cần phải khai báo class PHP ...
Hướng dẫn python log list
AuthorVinay Sajip Basic Logging Tutorial¶Logging is a means of tracking events that happen when some software runs. The software’s developer adds logging calls to their code to indicate that ...
Hướng dẫn transform: scale css
Trang chủTham khảoCSSCSS3Ví dụ về thuộc tính transform: scale()Thuộc tính transform với giá trị scale()Thuộc tính transform với giá trị scale: Xác định một biến ...
Hướng dẫn dùng usleep trong PHP
Bất kỳ cơ quan nào có thể giải thích cho tôi sự khác biệt giữa sleep()và usleep()trong PHP là gì.Tôi đã hướng dẫn sử dụng các tập lệnh sau để thực hiện ...
Hướng dẫn dùng functiond trong PHP
Hàm là một khái niệm đặc biệt quan trọng trong PHP (cũng như trong bất kỳ ngôn ngữ lập trình nào).Hàm trong PHP là một nhóm code được đặt tên nhằm thực ...
Hướng dẫn dùng format the trong PHP
Bài viết được sự cho phép của tác giả Phạm BìnhChào các bạn,Đây là bài viết tiếp theo của bài Code PHP chuẩn convention với PHP CodeSniffer. Trong bài này, ...
Hướng dẫn dùng objeckt JavaScript
Như các bạn đã biết, Javascript có 5 kiểu dữ liệu Number, String, Boolean, Undefined và Null và còn 1 kiểu khác nữa đó là Object (kiểu dữ liệu phức hợp). ...
Hướng dẫn insert mysql nodejs
Code ví dụ Node.js MySQL – Insert / save dữ liệuGiả sử bạn đã có sẵn database demo với table customer (id, name, address)(Xem lại: Code ví dụ node.js tạo database, tạo ...
Lịch thi đấu icc cup 2023
Trang chủ Bóng đá Thứ Tư, ngày 08/08/2018 00:06 AM (GMT+7) Lịch thi đấu ICC tên đầy đủ là International Champions Cup 2018, quy tụ những ông lớn tại các giải ...