🔥 ในโพสนี้ เราจะมาเปรียบเทียบกันถึงความแตกต่างกันระหว่าง JSON กับ XML แบบคร่าว ๆ ว่ามีจุดไหนที่แตกต่างกันบ้าง ไปดูกันเลย !!
.
🔴 JSON
รูปแบบข้อมูลในไฟล์ : String, Number, Array, Boolean
Namespaces : ไม่ซัพพอร์ต
Encoding : UTF-8 เท่านั้น
อ่านด้วยสายตา : อ่านง่าย
Comments : ไม่ซัพพอร์ต
Data Type : ตัวเลข และตัวอักษร
ความปลอดภัย : น้อยว่า XML
.
📑 ตัวอย่างโค้ด
{
"student": [
{
"id":"01",
"name": "Tom",
"lastname": "Jerry"
}
]
}
.
🟡 XML
รูปแบบข้อมูลในไฟล์ : String
Namespaces : ซัพพอร์ต
Encoding : รองรับได้หลายรูปแบบ
อ่านด้วยสายตา : อ่านยาก
Comments : ซัพพอร์ต
Data Type : สามารถใส่ images, charts, graphs
ความปลอดภัย : มากกว่า JSON
.
📑 ตัวอย่างโค้ด
.
เพื่อน ๆ ว่ามีจุดไหนที่แตกต่างกันอีก สามารถมาแชร์ความรู้เพิ่มเติมกันได้น้า 🥰
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
同時也有2部Youtube影片,追蹤數超過12萬的網紅prasertcbs,也在其Youtube影片中提到,การกำหนด locale บนระบบปฏิบัติการ Windows ใน RStudio เพื่อให้แสดงภาษาไทยตอน View dataframe Sys.setlocale("LC_CTYPE", "Thai") # for Windows only optio...
「encoding utf-8」的推薦目錄:
- 關於encoding utf-8 在 BorntoDev Facebook 的最佳貼文
- 關於encoding utf-8 在 Pai Syahira Facebook 的最佳解答
- 關於encoding utf-8 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
- 關於encoding utf-8 在 prasertcbs Youtube 的精選貼文
- 關於encoding utf-8 在 BorntoDev Youtube 的最讚貼文
- 關於encoding utf-8 在 JavaScript 常用編碼、解碼 - Summer。桑莫。夏天 的評價
- 關於encoding utf-8 在 python encoding utf-8 - Stack Overflow 的評價
- 關於encoding utf-8 在 Code Pages, Character Encoding, Unicode, UTF-8 and the BOM 的評價
- 關於encoding utf-8 在 What is the advantage of choosing ASCII encoding over UTF-8? 的評價
- 關於encoding utf-8 在 encoding = "ISO-8859-1" much slower than encoding = "UTF-8" 的評價
encoding utf-8 在 Pai Syahira Facebook 的最佳解答
PEMAHAMAN TENTANG IDENTITI, INTEGRITI DAN KERAHSIAAN
Mungkin ada daripada kita yang sudah tahu tentang pengekodan (encoding), penyulitan (encryption), dan pencincangan (hashing) tetapi apabila saya bercakap dari sudut dari segi identiti, integriti, dan kerahsiaan ia menjadi sedikit mengelirukan.
Saya hanya mahu bercakap tentang teknik ini dari segi Privasi dan Keselamatan. Meungkin ada sesetengah yang sudah tahu mengenai perkara yang saya terangkan. Tetapi, kalau ada yang tidak tepat pohon komen. Saya yakin bahawa anda akan tahu sesuatu yang berguna oleh akhir penulisan ini.
Anda mesti memikirkan Pengekodan (Encoding) , Penyulitan (Encryption), dan Pencincangan (Hashing) adalah asas kepada Kejuruteraan perisian dan mengapa saya bercakap lebih tentang perkara ini. Tetapi, terdapat juga andaian bahawa ketiga-tiga ini adalah benda serupa dan salah satu daripadanya boleh digunakan untuk memastikan keselamatan maklumat tetapi ianya salah. Terdapat banyak kekeliruan di sekitar istilah ini. Tanpa pemahaman yang betul, Pembangun perisian boleh tersilap menghantar simpanan data yang tidak selamat (atau) aliran data yang tidak menentu yang berisiko dan tidak selamat. Hari ini, saya akan membincangkan kepentingannya dan kes kajian penggunaan ketiga-tiga teknologi yang berkenaan.
Sebahagian besar daripada kita mungkin ada yg cuba memahami istilah ini dan padankan kefahamannya seolah-olah ianya ada sekumpulan algoritma dan mungkin terlupa kes penggunaan sebenar.
Dari sudut pandangan Keselamatan, identiti, integriti, dan kerahsiaan adalah kunci untuk membina perisian.
Identiti/ketulenan (Identity/Authenticity)
Mengetahui punca asal pemilik maklumat.
Contoh:
-Mengetahui penghantar mesej
-ID pemanggil bagi panggilan masuk
Integriti
M koelindungi maklumat daripada diubah/diubahsuai.
Contoh:
-Menggunakan SSL untuk mengelakkan perubahan data (DOS, serangan MITM)
-Pengesahan pelayan pada data masuk (pengesahan harga e-dagang Checkout)
Kerahsiaan
Hanya yang dibenarkan mempunyai akses kepada maklumat terhad.
Contoh:
-Akaun akses kepada pengguna log masuk
-Mesej akses kepada penghantar & penerima
Pengekodan (Encoding)
Pengekodan adalah satu proses untuk mengekalkan jujukan aksara karakter ke dalam format tertentu untuk tujuan transmisi atau penyimpanan data yang cekap. Pengekodan menggunakan algoritma yang tersedia secara awam untuk format, ianya bukan digunakan untuk melindungi maklumat. Sebaliknya, ia digunakan untuk mengoptimumkan saiz data yang dihantar dan akan diambil oleh jenis sistem yang berbeza dengan selamat. cth. base64 biasanya digunakan untuk mengekod data binari yang perlu disimpan atau dipindahkan dalam media yang boleh memproses data teks.
Contoh: Base64, Unicode (UTF-8, UTF-16), ASCII, pengekodan URL
Kes Penggunaan:
— Analog kepada digital: kita menggunakan kaedah pengekodan/penyahkodan untuk berkomunikasi dengan komputer. Sebarang bentuk data yang kita simpan/ubah pada (melalui) komputer dikodkan.
Pencincangan (Hashing)
Pencincangan adalah seperti jalan sehala; data yang telah dicincang tidak boleh dinyah-cincang. Pencincangan memastikan integriti data. Maksudnya, perubahan data akan dikenal pasti kerana setiap input menghasilkan output yang sentiasa sama. Hash biasanya adalah melibatkan rentetan daripada penambahan beberapa karakter.
Terdapat algoritma pencincangan yang telah dikompromi yang dikenali sebagai perlanggaran cincangan. Ia secara literal bermaksud dua input menjana cincangan yang sama. MD5 (mesej Digest algoritma) adalah salah satu algoritma yang telah dihentikan daripada selamat.
Contoh: SHA-1, SHA-2, MD5, SHA-256 dan sebagainya.
Kes Penggunaan:
— Untuk menyimpan kata laluan yang selamat: membantu mengelakkan daripada menyimpan kata laluan biasa. Hanya pengguna yang mengetahui kata laluan akan dapat mendapatkan maklumat.
— Untuk mengenal pasti fail: menjalankan pencincangan pada keseluruhan fail akan sentiasa menjana cincangan yang sama. Ini adalah berguna terutamanya bagi pengedaran perisian. Ia membantu untuk mengesahkan jumlah fail semasa memuat turun untuk memeriksa sama ada fail telah diubah atau rosak semasa penghantaran.
Penyulitan (Encryption)
Penyulitan menjamin kerahsiaan. Maksudnya, maklumat hanya boleh diakses oleh mereka yang diberi akses untuk berbuat demikian. Penyulitan memerlukan kekunci rahsia untuk mencapai maklumat.
Terdapat dua kategori dalam enkripsi.
Symmetrik: menggunakan kekunci yang sama untuk penyulitan dan penyahsulitan
Contoh:
- Permohonan pembayaran untuk melindungi PII (maklumat identiti peribadi) semasa transaksi.
-Menyimpan mesej teks (atau) maklumat sensitif pada cakera.
Asimetri: menggunakan kekunci awam & peribadi. Enkrip dengan awam dan menyahsulit dengan peribadi.
Contoh:
- HTTPS
- Penyulitan mesej akhir-ke-akhir (End-to-End) (aplikasi Whatsapp, Isyarat)
Penyulitan simetri lebih cepat berbanding Asimetrik.
Kes Penggunaan:
- Pangkalan data (Database): Kewajipan kontraktual, undang-undang privasi, dan pelanggaran data adalah sebab mengapa kita memerlukan penyulitan pada pangkalan data. Banyak organisasi menggunakan campuran penyulitan, tokenisation, dan pelindung data untuk melindungi daripada ancaman yang berpotensi.
- Penyimpanan Awan(Cloud Storage): Penyulitan telah menjadi kawalan keselamatan data utama untuk pengkomputeran awan. Menyulitkan jumlah storan yang berkaitan dengan aplikasi dan menyulitkan data yang disimpan dalam storan objek.
Rumusan ringkas:
- Pengekodan (Encoding) digunakan untuk penyimpanan dan penghantaran data yang cekap
- Cincang (Hashing) digunakan untuk mengekalkan integriti
- Penyulitan (Encryption) digunakan untuk mengekalkan Kerahsiaan
RZ
Boleh caba lanjut tentang Symmetric vs Assemmetric
URL: https://www.binance.vision/…/symmetric-vs-asymmetric-encryp…
encoding utf-8 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
เมื่อวานนี้ Wed 9 Oct 2019 รหัสผ่านของบิดาของ Unix (Ken Thompson) ถูก crack สำเร็จแล้ว
และรหัสคือ "p/q2-q4!" จากค่า
Hash ของรหัส "ZghOT0eRm4U9s" ที่โดน crack
1) คนที่ Crack สำเร็จคือ Nigel Williams ซึ่งเป็น Admin ของ HPC (High Performance Computing) systems ที่เกาะ Tasmania ประเทศออสเตรเลีย
โดยใช้ ซอฟต์แวร์ crack รหัสผ่านที่คุ้นเคย hashcat
ด้วย GPU AMD Radeon RX Vega 64
ที่มีความสามารถในการ Crack รหัสผ่านที่โดนแฮช ได้ถึง 930 ล้านแฮชต่อวินาที (930 MH/s)
โดย Nigel ใช้เวลาไปทั้งหมดในการ crack 4 วันกว่า
และได้ post ลง Unix Heritage Society mailing list ดังภาพ
โดย Ken เองก็ได้ post กลับแสดงความยินดีด้วย สั้นๆ
2) การ crack รหัสผ่านของ Ken นี้มีความเป็นมาอย่างไร
เริ่มจากเมื่อปี ค.ศ. 2014 Leah Neukirchen ได้พบไฟล์รหัสผ่าน /etc/passwd ใน file dump
จาก "BSD 3" source tree
ซึ่งข้างในมีรหัสผ่านของบุคคลสำคัญที่พัฒนา Unix version แรกๆ อย่าง Ken Thompson, Dennis Ritchie, Brian Kernighan, Steve Bourne, และ Bill Joy
โดยถูก hash ด้วย DES-based crypt
และเริ่มมีความพยายาม crack หารหัสผ่านเหล่านี้
ด้วยเครื่องมืออย่าง John the Ripper หรือ Hashcat
ต่อมารหัสผ่าน 20 รหัสถูก crack ออก
แต่ยังเหลืออีก 5 รหัสที่ crack ยากมากไม่ออก
ซึ่งรวมถึงรหัสของ Ken ซึ่งเพิ่งโดน Crack ออกเมื่อวานนี้
3) Ken Thompson ปัจจุบันอายุ 76 ปี
เป็นผู้สร้าง UNIX operating system ในช่วงทศวรรษที่ 1960
ในโครงการ the MULTICS project ซึ่งตอนหลัง Brain Kernighan เป็นคนให้ชื่อระบบปฏิบัติการว่า Unix
จากการย่อจาก MULTICS
Ken ยังเป็นคนสร้างภาษา Bon หรือ ภาษา B
ซึ่งต่อมาถูกพัฒนา เป็น ภาษา C (โดย Dennis Ritchie)
ที่สำคัญจนถึงปัจจุบัน
และ Ken ยังเป็นคนพัฒนา UTF-8 encoding ในปี ค.ศ. 1992
ต่อมาเค้ายัง สร้างภาษา Go (ร่วมกับ Robert Griesemer และ Rob Pike) ให้ google
และมีผลงานอื่นอีกมากมาย
ทั้งยังเคยได้รับรางวัล Turing Awards และอื่นๆ
4) เราได้บทเรียนอะไรจากกรณีนี้
4.1) รหัสผ่านบิดาของ Unix โคตรยาก เหอะๆ
เกือบเป็นไปตามคำแนะนำการตั้งรหัสผ่าน
ในเอกสาร NIST Special Publication 800-63B Section 5 เกือบเป๊ะ ที่แนะให้รหัสผ่านต้องมีตัวอักษรเล็ก ตัวอักษรใหญ่ ตัวเลข และสัญลักษณ์พิเศษ ยาว 8 อักขระขึ้นไป
4.2) แต่กระนั้น ก็ยังโดน crack ได้ด้วย GPU ในยุคนี้ ในเวลา 4 วันกว่าเท่านั้น
4.3) ดังนั้นต้องตั้ง set รหัสผ่านให้ยากๆ หน่อยนะครับ
และให้ดีกว่านั้นต้องใช้ การพิสูจน์ตัวตนหลายชั้น (Multiple Factor Authentication) ที่ใช้ OTP (One Time Password) ช่วยด้วย ไม่งั้นยุคนี้ อยู่รอดยากครับ GPU มัน เร็วเหลือเกิน การ brute-force รหัสผ่านที่ hash ไว้ทำได้เร็วเหลือเชื่อขึ้นทุกที
หากปล่อยให้ฐานข้อมูลรหัสผ่านหลุดไป
แม้ hash รหัสไว้ ก็ไม่น่าจะรอด ...นะเออ
== เพิ่มเติม ==
ลองตรวจราคา GPU รุ่นที่ใช้ Crack ตะกี้ เฮ้ยแค่ 15,000 บาทเอง โดยประมาณ อะ เหอะๆ น่ากลัวชิ๊บ...
[added 14 Oct 2019] และจากการชี้ข้อมูลของแฟน Page ใช้แค่ใบเดียวด้วยนะ ดูรายละเอียด ที่นี่สิ https://www.facebook.com/…/p.24740773259…/2474077325994629/…
== เพิ่มเติม 2 ==
Blog ของ Leah อธิบายว่า "p/q2-q4!" ที่เป็นรหัส Ken
ที่แท้ก็คือ การเปิดของเกมส์หมากรุก ที่นิยมแบบหนึ่ง
โดยเขียนการเดินหมาก ตามหลักการ Descriptive Notation ซึ่งอธิบายใน link นี้ https://en.wikipedia.org/wiki/Descriptive_notation
ซึ่งคือการเดินหมาก ตามภาพนี้เลยครับ [added 14 Oct 2019]
https://www.facebook.com/…/p.24741008159…/2474100815992280/…
*** Joke ***
เหอะๆ ใครคิดว่ารหัสตัวเอง ง่ายกว่าของคุณปู่ Ken
คือ "p/q2-q4!"
ไปตั้งใหม่เลยครับ !!!! เหอะๆๆๆๆ
แต่อย่าลืมกฏข้อสำคัญที่สุดของการตั้งรหัส
ข้อสุดท้ายด้วยนะครับ
"ต้องเป็นรหัสผ่านที่ท่านจำได้ด้วย"
ไม่งั้นจะเป็นรหัสผ่าน "ที่ดีเกินไปครับ"
เพราะ Hacker crack ไม่ได้ เร๊าก็จำไม่ได้เหมือนกัน!
อะไร "ที่ดีเกินไป" นี่ไม่เอานะครับ
เพราะมันเป็นเหตุผล classic ที่แฟนเราบอก
ตอนทิ้งเรา ใช่มั๊ย
"เพราะคุณดีเกินไป"
** References **
[1] Thomas Claburn. "Father of Unix Ken Thompson checkmated as his old password has finally been cracked", The Register, 9 October 2019.
https://www.theregister.co.uk/…/ken_thompsons_old_unix_pa…/…
[2] Paul Grassi et al. "Digital Identity Guidelines", NIST Special Publication 800-63B, June 2017.
https://pages.nist.gov/800-63-3/sp800-63b.html#sec5
[3] The Unix Heritage Society mailing list
Nigel post
https://inbox.vuxu.org/…/CACCFpdx_6oeyNkgH_5jgfxbxWbZ6VtOX…/
Ken reply
https://inbox.vuxu.org/…/CAG=a+rj8VcXjS-ftaj8P2_duLFSUpmNg…/
[4] Leah Neukirchen's Blog เกี่ยวกับ Ken's password, Oct 2019. https://leahneukirchen.org/…/ken-thompson-s-unix-password.h…
encoding utf-8 在 prasertcbs Youtube 的精選貼文
การกำหนด locale บนระบบปฏิบัติการ Windows ใน RStudio เพื่อให้แสดงภาษาไทยตอน View dataframe
Sys.setlocale("LC_CTYPE", "Thai") # for Windows only
options(encoding="UTF-8") # Optional (for Windows)
ดาวน์โหลดไฟล์ที่ใช้ในคลิปได้ที่ ► http://bit.ly/2AhUVMW
เชิญสมัครเป็นสมาชิกของช่องนี้ได้ที่ ► https://www.youtube.com/subscription_center?add_user=prasertcbs
สอนการใช้โปรแกรม R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGSiUGzdWbjxIkZqEO-O6qZ
สอนการเขียนโปรแกรมด้วยภาษา R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GF6qjrRuZFSHdnBXD2KVICp
สอน R สำหรับ Data Science ► https://www.youtube.com/playlist?list=PLoTScYm9O0GGat89RT9NMjW7sqFz84XSk
สอนการสร้างกราฟด้วยโปรแกรม R เบื้องต้น ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEvw9bN_Q8nRdDUPyaSymqM
การสร้างกราฟด้วย ggplot2 ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFEu7flht1Fv_gsT2mizgPW
สอนการใช้ dplyr package ► https://www.youtube.com/playlist?list=PLoTScYm9O0GEsJv4E4QmrBkdyax2IgRQG
สอนการใช้ tidyr package ► https://www.youtube.com/playlist?list=PLoTScYm9O0GFL9f4LpDa0zrh-rqzF3xdN
#prasertcbs #prasertcbs_R #prasertcbs_DataScience
encoding utf-8 在 BorntoDev Youtube 的最讚貼文
คอมพิวเตอร์ที่เราใช้อยู่ทุกวัน เซฟไฟล์ทุกวัน แล้วเรารู้ไหมว่าภายในข้อมูลเหล่านั้นมันเป็นยังไง ? คำตอบคือข้อมูลที่ใช้มันประกอบด้วยข้อมูลขนาดเล็กมากๆ รวมกันเท่านั้นเอง ! เรามาเรียนรู้เพิ่มเติมจากตอนนี้กันเลย :D
-----------------------------------------
Reference :
How exactly does binary code work? - José Américo N L F de Freitas
https://www.youtube.com/watch?v=wgbV6DLVezo
How do computers store images? - Udacity
https://www.youtube.com/watch?v=EXZWHumclx0
How computer memory works - Kanawat Senanan
https://www.youtube.com/watch?v=p3q5zWCw8J4
ทำไมต้องใช้ SSD : Solid State Drives
http://www.prism.co.th/2015/ssd-solid-state-drives/
UTF-8 encoding table and Unicode characters
https://www.utf8-chartable.de/unicode-utf8-table.pl?utf8=bin
-----------------------------------------
➤ ติดต่อโฆษณา สนับสนุนได้ที่ : [email protected]
➤Kittikorn Prasertsak (P.Prame)
Founder & Co-Founder of BorntoDev
➤กดติดตามช่องของ Youtube ได้ที่ : https://www.youtube.com/c/BorntoDevTH?sub_confirmation=1
➤Facebook : https://www.facebook.com/borntodev
➤Website : http://www.borntodev.com
encoding utf-8 在 Code Pages, Character Encoding, Unicode, UTF-8 and the BOM 的推薦與評價
Computer Stuff They Didn't Teach You #2 - Code Pages, Character Encoding, Unicode, UTF-8 and the ... ... <看更多>
encoding utf-8 在 JavaScript 常用編碼、解碼 - Summer。桑莫。夏天 的推薦與評價
常用的UTF-8 之encodeURI 與decodeURI、encodeURIComponent 與decodeURIComponent 和Base64 之btoa 與atob。 ... <看更多>