Skip to main content

Posts

Showing posts from October, 2015

[crypto] md5, sha, bit, byte, và hex

8 bits = 1 byte 1 byte biểu diễn được 2^8 = 256 "ký tự" 4 bits biểu diễn được 2^4 = 16 "ký tự". Một ký tự thuộc hệ hexadecimal (hệ số 16) là một ký tự trong khoảng: 0123456789abcdef Vậy chỉ cần 4 bits là có thể biểu diễn 1 ký tự hex, 2 ký tự hex = 1 byte MD5 là gì? MD5 là tên một thuật toán hash được sử dụng rộng rãi, được định nghĩa đầy đủ trong rfc1321. Thuật toán hash hiểu nôm na là thuật toán nhận 1 đầu vào thì sẽ cho ra 1 kết quả duy nhất, 2 đầu vào khác nhau sẽ phải cho ra 2 đầu ra khác nhau. nhận đầu vào có kích thước tuỳ ý nhưng trả về đầu ra với kích thước cố định. Các hàm hash dùng trong bảo mật thường có thêm tính chất: với 2 đầu vào khác nhau sẽ luôn cho ra 2 đầu ra khác nhau. Giá trị được trả về bởi hash function gọi là "hash value", "hash codes", "hash sums", hay "hash". Ví dụ: $ printf "familug" | md5sum b2bc686c91b99bd9cd92e70cdeaadf40  - $ printf "FAMILUG" | md5sum 60e...

[Golang] gofmt và sắp xếp import package

câu lệnh `` gofmt `` (đọc là gâu-phằm) sẽ tự động sắp xếp import, format code của file đầu vào, và in ra màn hình code đã được format theo tiêu chuẩn của Golang. Nếu để các dòng import liền nhau, gofmt sẽ sắp xếp chúng theo thứ tự alphabetical. Để tách riêng các standard package với các external package, phân cách chúng bởi 1 dòng trắng. Hai cụm import sẽ được gofmt sắp xếp riêng. Ví dụ: import (     "encoding/json"     "fmt"     "net"     "net/http"     recover_mw "git.familug.org/hvn/golib/echo/recover"     log "github.com/Sirupsen/logrus"     logmw "github.com/deoxxa/echo-logrus"     "github.com/labstack/echo" ) Cũng có thể dùng goimports để sắp xếp với logic tương tự mà không cần dòng trắng, nhưng đôi khi goimports tỏ ra quá thông minh và đã có lần tự import https://github.com/cockroachdb/cockroach/tree/421dcbbfe645eab4b49f682eabf69d98d36e50b...

Học Python tại Hà Nội

Tiếp nối thành công 2 khoá PyFML01 và PyFML02, khoá PyFML03 đã được mở. Xem thông tin chi tiết tại: https://gist.github.com/hvnsweeting/4112374900ef17411f44 Buổi học tới sẽ bắt đầu lúc 19h thứ 5 ngày 15 tháng 10 năm 2015. Vui lòng đăng ký ngay để biết thêm chi tiết. Page Facebook: https://www.facebook.com/pyfml Hết.

Mirroring apt repository với apt-mirror

Mirror trong tiếng Việt, dạng danh từ là cái gương, dạng động từ là "phản chiếu". Trong IT, mirror có nghĩa là giữ một bản copy nội dung của 1 site tại một site khác, nôm na là tạo bản copy. Đây là một kỹ năng có thể nắm bắt trong 10 phút và dùng cả đời :D Keyword mirror /ˈmɪrə/ Việt sub: mí-rơ apt repository là nơi chứa các package để cài đặt một phần mềm cho các hệ điều hành sử dụng apt (debian, ubuntu...). Ví dụ apt repository của postgresql: http://www.postgresql.org/download/linux/ubuntu/ Vì sao phải mirror?

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG