Decode Encode และ Decrypt Encrypt by Golang [#Part2]
สวัสดีค่า เนื่องจากหัวข้อนี้จะเป็นการแนะนำ 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
นำไฟล์ที่ 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 แล้วพบกันใหม่ กับความรู้ที่อยากจะแชร์ค่า