https://www.agileit.com/news/data-encryption-methods-secure-cloud/

สวัสดีค่า เนื่องจากหัวข้อนี้จะเป็นการแนะนำ encrypt และ decypt แบบ Asymmetric Encryption โดยการใช้ golang ไปเริ่มกันเลยดีกว่าค่า

วันนี้เราจะใช้ encyrpt แบบ RSA กันค่ะ เพราะเป็น algorithm ที่เป็นที่รู้จักกันอย่างดี

มาดู code กันดีกว่า

เรามาดู ผลลัพธ์กันเถอะ

Encrypt Text: YS3JBZxiMyCDLjbjxh49ZmmQsbU7stvejC9PsgljFxSQIENqp4wX52D6zXcup7J5a272v1ZNAqLfHltanvH7bNtNH+tIgCyyEZyNPGO883qXn41m4iOTTU+4+A3J+SHF4k0ei3V3ysBM6I9twTp5oY7ALsJQPabPtPPmSrpJa2zISjtzohE6ToE9x3g9ePhSs5wVhSv/spzSpezDSS+rTvlgJMXSHjYq1H5YzQ3ylsWdxmP9Jm6PPdsZasPUkAKiyVSVjXwCHJCRH1bv4PDBoy0D511h0ZSXz9B7btdZSgFiet5aTcvnu5qSvM6Xy3v8V3//ff7japQBcMtxBzBHOg==
Decrypt Text: This is super secret message!

สังเกตว่าเราทำการ genegate private key ผ่านคำสั่ง

privateKey, _ := rsa.GenerateKey(rand.Reader, 2048)

และ get public key จากคำสั่ง

publicKey := privateKey.PublicKey

กรณีอยากอ่านค่า public key และ private key จากไฟล์

ทำการ generate Key ผ่าน Web online หรือใช้ command generate rsa

https://travistidwell.com/jsencrypt/demo/

นำไฟล์ที่ public key และ private key ไปใส่ใน project สร้าง folder /cert

นำ private key ไปใส่ใน file id_rsa

และนำ public key ไปใส่ใน file id_rsa.pub

แก้ไขส่วนที่ generate public และ private key มาเป็นการอ่านจากไฟล์

นำ ไปแปลงได้ method ParseRSAPublicKeyFromPEM และ ParseRSAPublicKeyFromPEM ดังนี้

มาดู method ParseRSAPublicKeyFromPEM หรือการ generic Public key กันดีกว่า

มาทำการรันเพื่อได้ ผลลัพธ์กัน

Encrypt Text: Tj6dxq6lL2txQrwNvvlSn17LJf1GkftP/5bCTFm232ymHyK3wDZf8b2bgKUS6SWhPBWxl0XNiOf6d6s43mqIlzl2FSJu8RwUsCm67OJyDExkIF3tNl4uklJnK/gtUb4c/5c/o9DPX9XqHIvZ9hhKdwifTFdgNP4vp/x6a17YlfEevLmyq1VTT45ihEa/7VxZev7y5qTVM2c2KXSUB9T/uwkLe63sHnpRlWNb1NosWlTT2miOYLdxEqeYd8FnKg5mzzDVDKufNRuNNrdNqhZNmRcpT9JU1WEjlhrb49ViPb25CmHjalXPzAOIl0HxC/XLHHdVIVvJ+REQ+9fHzIYygqvSxQcoDkpHG2X9x5aTzf2S5VLAYvaCHGmTe1vg204kSa9ryi82ktFgxgHE1G4Q7o1fBwvn46FkBwntygOXT2BFIMJjcqEeiFEKqZLKguxCBViS6E5ODoMTYAB8o7qoJQh6mzBL3KbJiuhYXErNLdyCCNhy9vf4bFrYxRB3Zduy6QKWomup1grbLzBxJ0w/DE0hQPIfYiWMf2pomWhxnIBV2yWGX6BVmOtWxnY5d3JfFxaqN8CcmK+YXzrfy/Hv9WXEkIfOC3w8qxQMl8L4x7FLIDisZ0TuqTttJuioH8xISI3w33r/jakM8aI2lCitR7/2/TWKPhiYssz/H6EBH8c=
Decrypt Text: This is super secret message!

เสร็จเรียบร้อย ตอนนี้เราก็สามารถอ่านค่า public key และ private key จากไฟล์ที่เรา setting ไว้เรียบร้อยค่า

จบแล้วนะคะ สำหรับพื้นฐานของการ encryption data ทั้งที่เป็นนทั้งคววามรู้พื้นฐานและ go แล้วพบกันใหม่ กับความรู้ที่อยากจะแชร์ค่า

--

--