XÂY DỰNG ỨNG DỤNG CHAT CÓ BẢO MẬT TRÊN NỀN TẢNG GIAO DIỆN WEB (Luận Văn Thạc Sĩ)

78 2 0
XÂY DỰNG ỨNG DỤNG CHAT CÓ BẢO MẬT TRÊN NỀN TẢNG GIAO DIỆN WEB (Luận Văn Thạc Sĩ)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

XÂY DỰNG ỨNG DỤNG CHAT CÓ BẢO MẬT TRÊN NỀN TẢNG GIAO DIỆN WEB (Luận Văn Thạc Sĩ) Chương 1: Ứng dụng web và các nguy cơ gây mất an toàn thông tin Chương 1 của đồ án trình bày tổng quan về công nghệ Web, quá trình hình thành và phát triển, đưa ra những kiến thức tổng quan về ứng dụng Web, bên cạnh đó là nguy cơ gây mất an toàn thông tin và đưa ra một số giải pháp để khắc phục. 2 Chương 2: Giải pháp bảo mật trong ứng dụng chat trên nền tảng giao diện Web Chương 2 của đồ án trình bày sâu hơn và đưa ra giải pháp để tăng cường tính bảo mật cho ứng dụng Chat trên nền tảng giao diện Web. Chương 3: Xây dựng, triển khai và thực nghiệm ứng dụng chat trên nền tảng giao diện Web có bảo mật Chương 3 của đồ án trình bày về công cụ phát triển ứng dụng Chat trên nền tảng giao diện Web, đưa ra mô hình triển khai, áp dụng các giải pháp bảo mật đã nêu và thực nghiệm độ bảo mật của ứng dụng Chat

ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG CHAT CÓ BẢO MẬT TRÊN NỀN TẢNG GIAO DIỆN WEB Sinh viên thực hiện: Phạm Văn Anh HÀ NỘI – 2022 MỤC LỤC MỤC LỤC i CÁC KÝ HIỆU, CHỮ VIẾT TẮT iv DANH MỤC HÌNH VẼ v LỜI NÓI ĐẦU CHƯƠNG 1: ỨNG DỤNG WEB VÀ CÁC NGUY CƠ MẤT AN TỒN THƠNG TIN 1.1 Tổng quan công nghệ Web 1.1.1 Lịch sử phát triển Lỗi! Thẻ đánh dấu không được xác định 1.1.2 Một số khái niệm 1.1.3 Một số kĩ thuật sử dụng trao đổi liệu Web 1.2 Khái niệm phân loại ứng dụng Web 1.2.1 Khái niệm ứng dụng Web 1.2.2 Phân loại ứng dụng Web 1.2.3 Ưu điểm nhược điểm ứng dụng WebLỗi! Thẻ đánh dấu không được xác định 1.3 Một số tảng Web (Web Framework) 1.3.1 Khái niệm Web Framework 1.3.2 Ruby on Rails 1.3.3 CakePHP 1.3.4 ASP.NET 1.4 Một số nguy cơ, công lên ứng dụng WebLỗi! Thẻ đánh dấu không được xác định 1.4.1 Tấn công nghe Lỗi! Thẻ đánh dấu không được xác định 1.4.2 Tấn cơng dựa lỗi cấu hìnhLỗi! Thẻ đánh dấu không được xác định 1.4.3 Tấn công SQL InjectionLỗi! Thẻ đánh dấu không được xác định i 1.5 Giải pháp phịng chống cơng lên ứng dụng Web 10 1.5.1 Giải pháp đảm bảo tính xác thực 10 1.5.2 Giải pháp đảm bảo tính bí mật 10 1.5.3 Giải pháp đảm bảo tính tồn vẹn 11 1.5.4 Giải pháp đảm bảo tính chống chối bỏ 11 1.5.5 Giải phép đảm bảo tính sẵn sàng 11 CHƯƠNG 2: GIẢI PHÁP BẢO MẬT TRONG ỨNG DỤNG CHAT TRÊN NỀN TẢNG WEB 12 2.1 Các nguy gây an tồn thơng tin ứng dụng Chat 12 2.2 Giải pháp mã hóa liệu tầng ứng dụng 12 2.2.1 Hệ mật AES 13 2.2.2 Lựa chọn chế độ làm việc cho AES 14 2.3 Giải pháp sử dụng giao thức SSL/TLS 17 2.3.1 Lịch sử phát triển SSL/TLS 18 2.3.2 Cấu trúc, thành phần giao thức SSL/TLS 18 CHƯƠNG 3: XÂY DỰNG, TRIỂN KHAI ỨNG DỤNG CHAT TRÊN NỀN TẢNG GIAO DIỆN WEB CÓ BẢO MẬT 25 3.1 Công cụ phát triển ứng dụng Chat 25 3.1.1 ASP.NET SignalR 25 3.1.2 C# 29 3.1.3 HTML 29 3.1.4 CSS 30 3.1.5 JavaScript 30 3.1.6 Microsoft Visual Studio 30 3.1.7 Microsoft SQL Server 30 3.2 Yêu cầu ứng dụng Chat 31 3.3 Mơ hình triển khai ứng dụng Chat 32 3.4 Xây dựng ứng dụng Chat 33 ii 3.4.1 Xây dựng Module Chat 33 3.4.2 Xây dựng Module đăng nhập 38 3.5 Triển khai giải pháp bảo mật cho ứng dụng Chat 44 3.5.1 Triển khai giải pháp tích hợp chức mã hóa liệu 44 3.5.2 Triển khai giải pháp sử dụng SSL/TLS 52 3.6 Thực nghiệm ứng dụng Chat 58 3.6.1 Thực nghiệm chương trình Chat chưa có bảo mật 58 3.6.2 Thực nghiệm chương trình Chat có bảo mật 60 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 65 iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT Ký hiệu Tiếng Anh Tiếng Việt AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến AJAX Asynchronous JavaScript and XML JavaScript XML không đồng API Application Programming Interface Giao diện lập trình ứng dụng CBC Cipher block chaining Xích khối mã CFB Cipher feedback Phản hồi mã CSS Cascading Style Sheets Ngôn ngữ định kiểu theo tầng CTR Counter Bộ đếm DES Data Encryption Standard Tiêu chuẩn mã hóa liệu DLL Dynamic Link Library Thư viện liên kết động ECB Electronic codebook Sách mã điện tử HMAC Hash message authentication Mã xác thực thông báo sử dụng code hàm băm HTML Hypertext Markup Language Ngôn ngữ đánh dấu siêu văn HTTP Hypertexr Transfer Protocol Giao thức truyền tải siêu văn IETF Internet Engineering Task Force Lực lượng Chuyên trách Kỹ thuật Liên mạng MAC Message authentication code NIST National Institute of Standards Viện Tiêu chuẩn Kĩ thuật Mã xác thực thông báo and Technology Quốc gia OFB Output feedback Phản hồi đầu OWASP Open Web Application Security Dự án mở bảo mật ứng dụng Project Web SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu trúc SSL/TLS Secure Sockets Layer/ Transport Layer Security Bảo mật tầng Socket/ Bảo mật tầng vận chuyển URL Uniform Resource Locator Định vị tài nguyên thống XSS Cross-Site Scripting Kịch liên trang iv DANH MỤC HÌNH VẼ Hình 1.1 Mơ hình dịch vụ Web Hình 1.2 Regular HTTP Hình 1.3 AJAX Long-Polling Hình 1.4 HTML5 Websockets Hình 2.1 Mơ tả giải pháp tích hợp chức mã hóa ứng dụng 12 Hình 2.2 S-hộp thuận Lỗi! Thẻ đánh dấu khơng được xác định Hình 2.3 S-hộp nghịch Lỗi! Thẻ đánh dấu không được xác định Hình 2.4 Chế độ ECB 14 Hình 2.5 Chế độ CBC 15 Hình 2.6 Chế độ CFB 15 Hình 2.7 Chế độ OFB 16 Hình 2.8 Vị trí, thành phần SSL/TLS 19 Hình 2.9 Quá trình tạo ghi SSL 20 Hình 2.10 Cấu trúc ghi SSL qua mã hóa 21 Hình 2.11 Giao thức SSL HandShake 21 Hình 2.12 Giao thức SSL Change Cipher Spec 23 Hình 3.1 Quá trình lựa chọn phương thức kết nối SignalR 27 Hình 3.2 Mơ hình triển khai ứng dụng Web dựa SignalR 28 Hình 3.3 Mơ hình ứng dụng Chat có bảo mật 32 Hình 3.4 Tạo Project ASP.NET Web Application 34 Hình 3.5 Một Project ASP.NET Web Application 34 Hình 3.6 Thêm thư viện SignalR thông qua Nuget 35 Hình 3.7 Tạo ChatHub.cs 35 Hình 3.8 Nội dung ChatHub.cs 35 Hình 3.9 Tạo Startup.cs 36 Hình 3.10 Nội dung Startup.cs 36 Hình 3.11 Tạo trang chủ chứa ứng dụng Web 36 Hình 3.12 Chỉnh sửa nội dung trang chủ 37 Hình 3.13 Người dùng thứ truy cập trang chủ 37 Hình 3.14 Người dùng thứ hai truy cập trang chủ 38 Hình 3.15 Hai bên Chat thành cơng 38 Hình 3.16 Quá trình tạo tài khoản cho ứng dụng Chat 39 v Hình 3.17 Quá trình xác thực người dùng ứng dụng Chat 40 Hình 3.18 Tạo CSDL chứa thơng tin tài khoản người dùng 41 Hình 3.19 Tạo bảng chứa thông tin chi tiết người dùng 41 Hình 3.20 Dữ liệu tài khoản người dùng 42 Hình 3.21 Thiết kế trang Web đăng nhập 42 Hình 3.22 Sử dụng hàm băm SHA-512 cho việc băm liệu 43 Hình 3.23 Chương trình báo lỗi nhập sai mật 43 Hình 3.24 Chương trình báo lỗi nhập sai định dạng 44 Hình 3.25 Đăng nhập ứng dụng thành công 44 Hình 3.26 Đăng xuất khỏi ứng dụng 44 Hình 3.27 Q trình mã hóa AES-CTR 46 Hình 3.28 Quá trình giải mã AES-CTR 47 Hình 3.29 Tạo thư mục Crypto 48 Hình 3.30 Tạo aes.js aes-ctr.js 48 Hình 3.31 Thêm đường dẫn aes aes-ctr vào trang chủ 49 Hình 3.32 Người dùng thứ nhập mầm sinh khóa 49 Hình 3.33 Người dùng thứ hai nhập mầm sinh khóa 49 Hình 3.34 Người thứ nhập tin nhắn 49 Hình 3.35 Bản mã tin nhắn 50 Hình 3.36 Người dùng thứ hai nhận mã 50 Hình 3.37 Giải mã người dùng thứ hai nhận mã 50 Hình 3.38 Người dùng thứ hai nhập đoạn tin nhắn giống so với người dùng thứ 50 Hình 3.39 Bản mã tin nhắn thứ hai 51 Hình 3.40 Tiến hành xuất ứng dụng 51 Hình 3.41 Tạo đường dẫn lưu ứng dụng 51 Hình 3.42 Xuất ứng dụng thành công 52 Hình 3.43 Cấu hình Role Features thành cơng 52 Hình 3.44 Cấu hình DNS thành cơng 53 Hình 3.45 Tạo trang Web chứa ứng dụng Chat thành công 53 Hình 3.46 Cấu hình CA thành cơng 54 Hình 3.47 Tạo yêu cầu cho chứng 54 Hình 3.48 Thơng số chứng 55 Hình 3.49 Đưa yêu cầu lên trang chủ RootCA 55 vi Hình 3.50 Cấp chứng thư số dịch vụ CA 56 Hình 3.51 Chứng thư số trang Web 56 Hình 3.52 Yêu cầu trang Web chạy SSL 57 Hình 3.53 Chứng thư số trang Web 57 Hình 3.54 Mơ hình thực nghiệm ứng dụng Chat 58 Hình 3.55 Các bên xác định phương thức truyền tải 58 Hình 3.56 Người dùng tiến hành trao đổi tin nhắn 59 Hình 3.57 Kẻ cơng bắt đọc trộm gói tin thành cơng 59 Hình 3.58 Ứng dụng tiến hành mã hóa đoạn hội thoại 60 Hình 3.59 Tin nhắn máy trạm thứ hai nhận 60 Hình 3.60 Dữ liệu kẻ công bắt 61 Hình 3.61 Quá trình bắt tay máy trạm thứ máy chủ 62 Hình 3.62 Quá trình bắt tay máy trạm thứ hai máy chủ 62 Hình 3.63 Tin nhắn mã hóa máy trạm thứ 62 Hình 3.64 Tin nhắn mã hóa máy trạm thứ hai 63 Hình 3.65 Gói tin TLSv1.2 trao đổi bên 63 vii LỜI NÓI ĐẦU Web xuất lần vào năm 1989 nhà vật lý học Tim BernersLee muốn tìm cách thức giúp nhà khoa học trao đổi tài liệu nghiên cứu thông qua Internet Từ Web có bước đột phá nhờ giải pháp, công nghệ đưa Ban đầu trang Web tĩnh, tương tác ít, sau đó, Web động xây dựng với tính tương tác ngày tăng cao gần đời trang Web thời gian thực Facebook, Twitter,… Cùng với phát triển Web ứng dụng Web phát triển khơng ngừng Các ứng dụng Web có ưu điểm vượt trội mang đến cho người dùng nhiều tiện lợi hồn tồn khơng phải cài đặt, bên cạnh đó, người dùng truy cập sử dụng lúc nào, cần kết nối Internet kết nối tới Website có ứng dụng Web cần thao tác Một số ứng dụng Web phổ biến ứng dụng Chat Chúng giúp người dùng liên lạc với đồng nghiệp, bạn bè dễ dàng hơn, cần ngồi chỗ liên lạc đến họ khoảng cách địa lý, từ cắt giảm nhiều chi phí khơng cần thiết Hiện nay, ứng dụng Chat cải tiến liên tục, việc nhắn tin cịn chia sẻ file, nhạc, văn bản,… Hiện có nhiều ứng dụng Chat với số lượng người dùng lên đến hàng trăm triệu Google Chat, Viber, WhatsApp, Khi ứng dụng Chat phổ biến kéo theo khơng lo ngại nguy an tồn thơng tin cho người sử dụng Việc nghe hay đánh cắp thông tin vấn đề nhức nhối cấp bách Và ứng dụng Chat lại nguy mà chúng phải đối mặt đặc điểm dùng để trao đổi thông tin người sử dụng ứng dụng Người dùng vơ tình sử dụng ứng dụng Chat khơng an tồn làm lộ liệu riêng tư Đứng trước thực tế vậy, việc tìm hiểu xây dựng ứng dụng Chat có bảo mật nhu cầu tất yếu Nội dung đồ án chia làm chương: Chương 1: Ứng dụng web các nguy gây mất an tồn thơng tin Chương đồ án trình bày tổng quan cơng nghệ Web, q trình hình thành phát triển, đưa kiến thức tổng quan ứng dụng Web, bên cạnh nguy gây an tồn thơng tin đưa số giải pháp để khắc phục Chương 2: Giải pháp bảo mật ứng dụng chat tảng giao diện Web Chương đồ án trình bày sâu đưa giải pháp để tăng cường tính bảo mật cho ứng dụng Chat tảng giao diện Web Chương 3: Xây dựng, triển khai thực nghiệm ứng dụng chat tảng giao diện Web có bảo mật Chương đồ án trình bày công cụ phát triển ứng dụng Chat tảng giao diện Web, đưa mơ hình triển khai, áp dụng giải pháp bảo mật nêu thực nghiệm độ bảo mật ứng dụng Chat Hình 3.50 Cấp chứng thư số dịch vụ CA - Truy cập trình duyệt Web theo đường dẫn: http://chat.com/certsrv/Chọn tùy chọn View the status of a pending certificate request - Kích vào đường dẫn Saved-Request Certificate để lưu chứng thư Dưới hình ảnh chứng thư lưu về: Hình 3.51 Chứng thư số trang Web 56 - Vào dịch vụ IIS, chọn Server Certificates, Action chọn Open feature Chọn Complete Certificate Request - Bật dịch vụ IIS, chọn máy chủ IIS, chọn Server Certificates, mục Action chọn Open feature Chọn Complete Certificate Request Tiếp tục trỏ đến nơi lưu trữ chứng thư tải Thực cấu hình SSL/TLS - Cấu hình để máy chủ IIS chạy dịch vụ SSL Từ giao diện IIS truy cập tới Sites → Chat , tìm đến chức SSL setting - Giao diện Site Bindings chọn Add Trong Type chọn https : Port 443 Trong mục SSL Certificate → Select → chọn chứng thư có - Chọn OK Trở lại giao diện Home chọn SSL Settings, mục Action chọn Open feature Tích chọn vào Require SSL, mục Action chọn Apply Hình 3.52 Yêu cầu trang Web chạy SSL Kiểm tra trang Web cấu hình SSL/TLS thành cơng cách truy cập thử Hình 3.53 Chứng thư số trang Web 57 Đồ án tiến hành cấu hình, cấp phát Self Signed SSL Certificate cho trang Web, thực tế tiến hành xin cấp phát SSL Certificate tổ chức uy tín giới như: GlobalSign.com, TheSSLStore.com,… 3.6 Thực nghiệm ứng dụng Chat Kịch thực nghiệm sau: - Alice Bob hai bên sử dụng ứng dụng Chat, tiến hành trao đổi thông qua ứng dụng - Kẻ thứ ba sử dụng chương trình WireShark để tiến hành dị bắt gói tin, từ nắm giao thức dùng để truyền tin, nội dung thông tin trao đổi Alice Bob Mơ hình chung q trình thực nghiệm: Hình 3.54 Mơ hình thực nghiệm ứng dụng Chat 3.6.1 Thực nghiệm chương trình Chat chưa có bảo mật Ngay Alice Bob truy cập đến trang Web có chứa ứng dụng Chat, trình duyệt xác định phương thức trao đổi máy trạm máy chủ sau thực truyền nhận liệu nêu mục 3.1.1.2 Hình 3.55 Các bên xác định phương thức truyền tải 58 Tiếp theo đó, hai bên Chat :” Xin chào” Hình 3.56 Người dùng tiến hành trao đổi tin nhắn Cùng lúc kẻ xấu thứ ba tiến hành nghe trái phép đường truyền, kết kẻ thứ ba nắm bắt trình trao đổi hai bên Hình 3.57 Kẻ cơng bắt đọc trộm gói tin thành công 59 Như vậy, ứng dụng Chat không bảo mật dễ dàng bị kẻ xấu nắm bắt nội dung thơng tin trị chuyện 3.6.2 Thực nghiệm chương trình Chat có bảo mật 3.6.2.1 Thực nghiệm chương trình Chat có mã hóa tầng ứng dụng Alice Bob sử dụng chương trình Chat có mã hóa tầng ứng dụng sử dụng trình duyệt Google Chrome, sử dụng phương thức truyền tải WebSocket Alice chat “Xin chào” mã hóa: Hình 3.58 Ứng dụng tiến hành mã hóa đoạn hội thoại Ở phía bên kia, Bob nhận tin nhắn giải mã thành cơng: Hình 3.59 Tin nhắn máy trạm thứ hai nhận Cùng lúc đó, kẻ thứ ba nghe đường truyền bắt gói tin sau: 60 Hình 3.60 Dữ liệu kẻ công bắt 3.6.2.2 Thực nghiệm chương trình Chat có mã hóa tầng ứng dụng cấu hình SSL/TLS Tiếp theo, đồ án tiếp tục tiến hành thực nghiệm chương trình Chat thêm chức mã hóa AES-CTR cấu hình SSL/TLS Hai bên người sử dụng tiếp tục sử dụng Google Chrome để truy cập vào ứng dụng Chat Ngay truy cập vào trang Web chứa ứng dụng Chat, gói tin để cấu hình máy chủ máy trạm gửi nhằm thiết lập SSL/TLS trình bày chương Quá trình bắt tay máy trạm thứ (IP: 192.168.1.100) 61 Hình 3.61 Quá trình bắt tay máy trạm thứ máy chủ Quá trình bắt tay máy trạm thứ hai (IP: 192.168.1.200) Hình 3.62 Quá trình bắt tay máy trạm thứ hai máy chủ Sau đăng nhập thành công, Alice Bob tiếp tục sử dụng ứng dụng Hai bên nhập mầm sinh khóa là: hocvienkythuatmatma123 Hai bên tiếp tục nhập vào đoạn Chat “Xin chào”, máy người dùng tin nhắn mã hóa thuật tốn AES chạy chế độ CTR Tin nhắn thơng qua chức mã hóa tích hợp tầng ứng dụng Hình 3.63 Tin nhắn mã hóa máy trạm thứ 62 Hình 3.64 Tin nhắn mã hóa máy trạm thứ hai Bước tiếp theo, tiến hành bắt gói tin thơng qua WireShark để so sánh với kết bắt gói tin ứng dụng Chat chưa có SSL/TLS Các gói tin trao đổi qua lại máy chủ hai máy trạm đóng gói giao thức TLS v1.2 Hình 3.65 Gói tin TLSv1.2 trao đổi bên Như vậy, liệu trải qua hai lần mã hóa, qua đảm bảo tính bí mật, ngăn ngừa kẻ xấu theo dõi đánh cắp thông tin Kết luận chương Chương thực thành công giải pháp nêu chương Tiếp theo chứng minh tính bảo mật ứng dụng Chat, thơng qua việc sử dụng WireShark dị bắt gói tin 63 KẾT LUẬN Qua q trình thực đồ án tốt nghiệp với đề tài “Xây dựng ứng dụng Chat có bảo mật tảng giao diện Web” tơi tìm hiểu đạt kết sau: - Tìm hiểu ứng dụng Web, giao thức truyền tải thông tin nguy an tồn ứng dụng Web - Tìm hiểu ASP.NET SignalR - Nghiên cứu, tìm hiểu giải pháp bảo mật liệu cho ứng dụng Chat, triển khai ứng dụng Chat tảng Web có bảo mật Tuy nhiên thời gian thực đồ án chưa nhiều, kiến thức cịn có phần hạn chế nên đồ án khơng tránh khỏi thiếu sót định Trong thời gian tới tiếp tục nghiên cứu theo hướng sau: - Tiếp tục nghiên cứu, tìm hiểu đưa giải pháp khác nhằm tăng tính bảo mật cho ứng dụng - Tiếp tục mở rộng tính cho ứng dụng Chat, bao gồm: thêm chức Chat – một, thêm chức gửi tệp liệu văn bản, hình ảnh, âm 64 [3] TÀI LIỆU THAM KHẢO Einar Ingebrigtsen; “SignalR – real-time application development, second [4] edition”; 2015 José M Aguilar;” SignalR Programming in Microsoft ASP.NET”; 2014 [5] [6] Justin Clarke, Rodrigo Marcos Alvarez, Dave Hartley, Joseph Hemler, Alexander Kornbrust; “SQL Injection Attack and Defense ”; 2009 IETF; The Transport Layer Security (TLS) Protocol Version 1.2 https://tools.ietf.org/html/rfc5246 [7] IETF; US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF) [8] https://tools.ietf.org/html/rfc6234 National Institute of Standards and Technology; FIPS 197 https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf [9] ASP.NET Documentation https://docs.microsoft.com/en-us/aspnet/#pivot=aspnet [10] SHA-256 JavaScripts Source code https://www.movable-type.co.uk/scripts/js/crypto/docs/sha256.js.html [11] AES-CTR JavaScripts Source code https://www.movable-type.co.uk/scripts/aes.html 65 PHỤ LỤC Thuật toán AES viết ngôn ngữ JavaScript class Aes { static cipher(input, w) { const Nb = 4; const Nr = w.length/Nb - 1; let state = [ [], [], [], [] ]; for (let i=0; i>> 0; H[4] = (H[4] + e) >>> 0; H[5] = (H[5] + f) >>> 0; H[6] = (H[6] + g) >>> 0; H[7] = (H[7] + h) >>> 0; } for (let h = 0; h < H.length; h++) H[h] = ('00000000' + H[h].toString(16)).slice(-8); const separator = opt.outFormat == 'hex-w' ? ' ' : ''; return H.join(separator); function utf8Encode(str) { try { return new TextEncoder().encode(str, 'utf-8').reduce((prev, curr) => prev + String.fromCharCode(curr), ''); } catch (e) { return unescape(encodeURIComponent(str)); } } function hexBytesToString(hexStr) { const str = hexStr.replace(' ', ''); return str == '' ? '' : str.match(/.{2}/g).map(byte => String.fromCharCode(parseInt(byte, 16))).join(''); } } static ROTR(n, x) { return (x >>> n) | (x >> 3); } static σ1(x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x >>> 10); } static Ch(x, y, z) { return (x & y) ^ (~x & z); } static Maj(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); } }

Ngày đăng: 24/06/2023, 15:33

Tài liệu cùng người dùng

Tài liệu liên quan