@pdling
Cảm ơn bạn. Mình mới bổ sung thêm chi tiết hơn về quá trình thống nhất phương pháp mã hoá và giải mã trên client và server.
Để thực hiện cơ chế mã hoá và giải mã giữa client và server, chúng ta cần phải có một cặp khoá chung, cả 2 đều biết nhưng bảo mật, gọi là session key. Để bảo mật session key này, thì chúng ta cần sử dụng phương pháp mã hoá bất đối xứng, hay nói cách khác, chúng ta cần có một cặp khoá private key và public key. Chi tiết về quá trình handshake (bắt tay) trao đổi dữ liệu ban đầu của server và client sẽ diễn ra như sau:
Client sẽ yêu cầu một kết nối bảo mật tới server, và cung cấp cho server danh sách những phương pháp mã hoá (ciphers and hash functions) mà client hỗ trợ.
Từ danh sách đó, server chọn ra cipher và hash function mà nó có và thông báo lại cho client biết.
Cạnh đó, server gửi kèm theo chứng chỉ số (digital certificate) bao gồm các thông tin như server name, đơn vị cung cấp chứng chỉ (CA - Certificate Authorities) và public key.
Client sẽ liên lạc với CA đã cung cấp chứng chỉ cho server trên, và kiểm tra tính hợp lệ của chứng chỉ này.
Sau đó, client sẽ bắt đầu sinh ra một session key, bằng cách sinh ra một số ngẫu nhiên và mã hoá nó bằng public key của server. Sau đó gửi Session Key này đến server. Và server sẽ dùng private key để giải mã nó và lấy được số ngẫu nhiên đó.
Từ số ngẫu nhiên này, server và client sẽ dùng để mã hoá thông tin trao đổi bằng thuật toán khoá đối xứng (symmetric-key algorithm).
cho mình hỏi là AnimationDrawable thì file xml chứa các frame được tạo trong thư mục Drawable hay tạo 1 file Anim ngang hàng với file Drawable rồi tạo 1 file xml trong thư mục Anim? mình thấy 2 cách đều được nhưng ko rõ là nên làm theo cách nào?
"Server sẽ làm nhiệm vụ giải mã TLS và nhận lại đuợc request HTTP ban đầu, sau đó xử lí và response sẽ lại đuợc mã hoá gửi lại cho browser thông qua TLS" & "Trong đó public key sẽ đuợc server gửi đến browser để mã hoá dữ liệu, còn private key sẽ đuợc server dùng để giải mã"
=> 1 câu hỏi nhỏ là browser dùng cái gì để giải mã HTTP response khi mà không có private key?
lúc đầu tớ làm theo hướng dẫn nhưng đến chỗ chạy lệnh "rails generate i18n:js:config" thì báo lỗi.
Sau đó mình search và đã tìm ra cách sửa: thay vì include (gem "i18n-js") mình sẽ include
(gem "i18n-js", "3.0.0.rc10"). sau đó mọi thứ chạy bt.
Thank for share
Zsh mạnh ở cái plugin + cộng đồng phát triển nữa, phần sau giới thiệu về cái này nữa đi anh
Có gì thử qua fish shell cũng ok lắm anh ạ. Fish shell hỗ trợ cũng tốt, nhất là về complete, history và color đẹp nữa
java web ak mình đang làm chỉ đường mà mình bị đứng lại vì không biết hướng để đi tiếp
mình làm theo hướng dẩn của bạn để đưa cái địa điểm vào mà nó không nhận cái input phải o trong maps nó mới hiểu và dánh dấu trên bản đồ còn từ form thì nó không nhận
vi dụ nhu thế này:mình dùng css với java lập trình theo mô hình MVC
From:
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat:10.016667, lng: 105.783333},
zoom: 13
});
var input = document.getElementById('diemdau');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.bindTo('bounds', map);
var infowindow = new google.maps.InfoWindow();
var marker = new google.maps.Marker({
map: map
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
autocomplete.addListener('place_changed', function() {
infowindow.close();
var place = autocomplete.getPlace();
if (!place.geometry) {
return;
}
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(15);
}
// Set the position of the marker using the place ID and location.
marker.setPlace({
placeId: place.place_id,
location: place.geometry.location
});
marker.setVisible(true);
infowindow.setContent('<div><strong>' + place.name + '</strong><br>' +
place.formatted_address);
infowindow.open(map, marker);
});
}
Chưa dùng phím cơ bao giờ nhưng do quen dùng bàn phím Thinkpad nên mình vẫn thích low profile keyboard hơn, các phím ko dày nên khả năng lướt ngón tay từ phím này đến phím kia nhanh hơn rất nhiều !
DISCUSSIONS
@pdling Cảm ơn bạn. Mình mới bổ sung thêm chi tiết hơn về quá trình thống nhất phương pháp mã hoá và giải mã trên client và server.
Để thực hiện cơ chế mã hoá và giải mã giữa client và server, chúng ta cần phải có một cặp khoá chung, cả 2 đều biết nhưng bảo mật, gọi là session key. Để bảo mật session key này, thì chúng ta cần sử dụng phương pháp mã hoá bất đối xứng, hay nói cách khác, chúng ta cần có một cặp khoá private key và public key. Chi tiết về quá trình handshake (bắt tay) trao đổi dữ liệu ban đầu của server và client sẽ diễn ra như sau:
Client sẽ yêu cầu một kết nối bảo mật tới server, và cung cấp cho server danh sách những phương pháp mã hoá (ciphers and hash functions) mà client hỗ trợ.
Từ danh sách đó, server chọn ra cipher và hash function mà nó có và thông báo lại cho client biết.
Cạnh đó, server gửi kèm theo chứng chỉ số (digital certificate) bao gồm các thông tin như server name, đơn vị cung cấp chứng chỉ (CA - Certificate Authorities) và public key.
Client sẽ liên lạc với CA đã cung cấp chứng chỉ cho server trên, và kiểm tra tính hợp lệ của chứng chỉ này.
Sau đó, client sẽ bắt đầu sinh ra một session key, bằng cách sinh ra một số ngẫu nhiên và mã hoá nó bằng public key của server. Sau đó gửi Session Key này đến server. Và server sẽ dùng private key để giải mã nó và lấy được số ngẫu nhiên đó.
Từ số ngẫu nhiên này, server và client sẽ dùng để mã hoá thông tin trao đổi bằng thuật toán khoá đối xứng (symmetric-key algorithm).
thanks. This article is very useful.
@TrungCr Bạn tham khảo cài đặt trên Windows nhé !
https://github.com/Automattic/node-canvas/wiki/Installation---Windows
cho mình hỏi là AnimationDrawable thì file xml chứa các frame được tạo trong thư mục Drawable hay tạo 1 file Anim ngang hàng với file Drawable rồi tạo 1 file xml trong thư mục Anim? mình thấy 2 cách đều được nhưng ko rõ là nên làm theo cách nào?
"Server sẽ làm nhiệm vụ giải mã TLS và nhận lại đuợc request HTTP ban đầu, sau đó xử lí và response sẽ lại đuợc mã hoá gửi lại cho browser thông qua TLS" & "Trong đó public key sẽ đuợc server gửi đến browser để mã hoá dữ liệu, còn private key sẽ đuợc server dùng để giải mã" => 1 câu hỏi nhỏ là browser dùng cái gì để giải mã HTTP response khi mà không có private key?
lúc đầu tớ làm theo hướng dẫn nhưng đến chỗ chạy lệnh "rails generate i18n:js:config" thì báo lỗi. Sau đó mình search và đã tìm ra cách sửa: thay vì include (gem "i18n-js") mình sẽ include (gem "i18n-js", "3.0.0.rc10"). sau đó mọi thứ chạy bt.
vậy với dự án support cả iOS 7 thì nếu muốn dùng tính năng upload from Photoalbum thì lại if else code để sử dụng AssetsLibrary nhỉ?
Thank for share
Zsh mạnh ở cái plugin + cộng đồng phát triển nữa, phần sau giới thiệu về cái này nữa đi anh
Có gì thử qua fish shell cũng ok lắm anh ạ. Fish shell hỗ trợ cũng tốt, nhất là về complete, history và color đẹp nữa 
java web ak mình đang làm chỉ đường mà mình bị đứng lại vì không biết hướng để đi tiếp mình làm theo hướng dẩn của bạn để đưa cái địa điểm vào mà nó không nhận cái input phải o trong maps nó mới hiểu và dánh dấu trên bản đồ còn từ form thì nó không nhận vi dụ nhu thế này:mình dùng css với java lập trình theo mô hình MVC From:
@tomato Em search qua thì ra bài này (hihi)
http://www.techrepublic.com/blog/linux-and-open-source/is-tmux-the-gnu-screen-killer/
Thay đổi thôi anh
Chưa dùng phím cơ bao giờ nhưng do quen dùng bàn phím Thinkpad nên mình vẫn thích low profile keyboard hơn, các phím ko dày nên khả năng lướt ngón tay từ phím này đến phím kia nhanh hơn rất nhiều !
bạn có source code không cho mình xin link, thanks.
Cám ơn, nó rất bổ ích
Không đọc nhưng vẫn phải comment do bài viết quá đặc biệt
Tác giả dịch hoặc viết những bài kiểu này nhiều hơn nữa nhé, thanks nhiều!
Good!
hôm qua làm cái phần export excel dò cái này của anh mãi mới biết cách làm. Giá mà anh viết sớm 1 hôm có phải hay không
Đúng chuyên gia mình cần đây rùi ! Sau này có vấn đề gì liên quan đến FTS thì nhờ chị support em nhé chị @HuyenCham (hehe)
Quá nhiều rủi ro :v
8-| Chưa thấy gì là ưu điểm cả