Chủ Nhật, ngày 27 tháng 10 năm 2013

Lưu mật khẩu an toàn hơn với Bcrypt

Hầu hết chúng ta khi tập làm web hoặc một ứng dụng liên quan tới đăng nhập/xác thực người dùng thì đều được hướng dẫn là dùng các hàm tính hash như MD5/SHA… để lưu trữ mật khẩu. Để tăng độ an toàn thì có thể tạo thêm các cột gọi là “salt” cho mỗi user. Đó là một chuỗi ngẫu nhiên được thêm vào trước khi tạo ra giá trị hash cuối cùng rồi lưu vào database nhằm hạn chế bị tìm ra mật khẩu bằng các phương thức như Rainbow table, Brute-force, Dictionary attack. Cách này không còn an toàn với các chip tính toán siêu nhanh và ngày càng nhanh ngày nay. Các chíp xử lí đồ hoặc chuyên dụng GPU còn nhanh hơn gấp bội.

Tại sao? Tại vì các thuật toán tính hash được thiết kế với mục tiêu càng nhanh càng tốt. Nó thường được dùng để tạo ra checksum dùng trong việc kiểm tra sự bảo toàn của lượng dữ liệu lớn. Nếu bạn hay down các phần mềm nguồn mở hoặc miễn phí sẽ hay thấy cái này.

Vậy giải pháp là gì?

Thứ Năm, ngày 10 tháng 10 năm 2013

Getting AP-Hotspot to work well on Ubuntu

Turning Windows into a Wi-Fi router is very easy with a few command lines and configuration. Or if you don't like command lines, you can use some softwares like Connectify to do that for you.

But I mainly work on Ubuntu and I want to share internet connection to other devices. Creating an ad-hoc hotspot is easy but some phones won't work with it. So I have spent a lot of effort on creating an access point.

Thứ Ba, ngày 28 tháng 5 năm 2013

Named Buttons Captcha

Most traditional CAPTCHA solutions ask a user to enter some random characters rendered in an image. Those solutions might be broken by OCR scanners if the characters are clear. But it's really inconvenient for users if the characters are complexly displayed.

Some other solutions require users to click on a color, but colors are even easier to break.

NamedButtonsCaptcha is a CAPTCHA engine that is extremly easy for humans but difficult for bots/automated scripts to pass.

Chủ Nhật, ngày 12 tháng 5 năm 2013

Thường thôi


Hạt mưa rơi xuống mặt ao
Ao cho hơi nước lên cao cùng trời
Làm hạt mưa khác lại rơi
Ao lại gửi trời hạt nước vừa sa
Trăm năm trong cõi người ta
Nước lên mưa xuống cũng là thường thôi

Thứ Năm, ngày 11 tháng 4 năm 2013

Nhớ cha...


Một bài hát cũ của nhạc sĩ quá cố Đỗ Quang, "nhạc trẻ" của thời kì hơn 10 năm trước. Có vẻ như nó không được nổi tiếng lắm, cũng không phải một kiệt tác nghệ thuật, nhưng nó đã đi vào lòng tôi ngay lần đầu tiên. Đó là năm lớp 8, lần đầu tiên nhà tôi có một cái máy cassette. Tôi hào hứng biết bao và nghe đi nghe lại bài này. Một cảm xúc rất khó tả. Dù tôi chưa kịp có kí ức để nhớ về cha, nhưng cũng vẫn nhớ, nhớ vô cùng... nhất là mỗi khi thấy lạc lõng, bơ vơ trong cuộc đời này. Hôm nay ngày giỗ cha, giờ tôi cũng làm cha của một đứa con trai rồi, tự nhiên mỉm cười lau nước mắt khi nghe lại.

Zodeken2 - Model/Mapper generator for Zend Framework 2

Following Zodeken that generates code for Zend Framework 1, I've created Zodeken2 for ZF2. The new tool is still lacking features compared to Zodeken because I don't have much time for it. For now, it can generate Model and Mapper classes only.

Thứ Hai, ngày 08 tháng 4 năm 2013

PHP kết nối MySQL cực kỳ chậm trên Windows 8

Vấn đề này làm tôi đau đầu suốt mấy ngày nay. Tôi đang phát triển một app trên Zend Framework 2 và nó chạy cực kì ì ạch mặc dù máy tính của tôi cũng không yếu lắm. Đã thử chạy các câu SQL trong phpMyAdmin hay trong command line, hay trong MySQL workbench... cực nhanh nhưng website vẫn chạy cực chậm (gần 2s).