โปรแกรมเตรียมพารามิเตอร์ข้อมูลแบบ SHA-256 สำหรับ Loadrunner


โปรแกรมเข้ารหัส Hash function แบบ SHA-256


สวัสดีครับ วันนี้บทความนี้จะมาแสดงเทคนิกการเขียนโปรแกรมที่เกี่ยวกับการเข้ารหัสให้เพื่อนๆเข้าใจกัน โดยในเคสนี้ผมเจอโจทย์ปัญหาว่า ให้ทำการเตรียม parameter ที่เข้ารหัสแบบ SHA-256 เพื่อทำ load test ระบบโดยใช้ test tool ที่ชื่อว่า Loadrunner บทความนี้จึงจะแสดงวิธีการเขียนโปรแกรม (Java) เพื่อเข้ารหัส SHA-256 สำหรับใช้ทำ load test




รูป 1 โปรแกรมแสดงการเลือกไฟล์มาเข้ารหัส


รูป 2 การเข้ารหัสแบบ SHA-256 จากไฟล์ต้นทาง (ซ้าย) มายังไฟล์ที่ถูก encrypt (ขวา)

1.   การเข้ารหัส Hashing แบบ SHA-256


  • SHA เป็นการสร้างข้อความสรุปที่สามารถใช้เป็นตัวแทนของข้อความตั้งต้นได้ โดยทั่วไปข้อความสรุปจะมีความยาวอยู่ระหว่าง 128 ถึง 256 บิต และจะไม่ขึ้นกับขนาดความยาวของข้อความตั้งต้น หาก Input เหมือนเดิม Output ที่ได้จะไม่เปลี่ยนไปจากเดิม
  • หาก Input เปลี่ยนไปแม้แต่นิดเดียว Output ที่ได้จะต่างกันอย่างสิ้นเชิง คือไม่มีความคล้ายคลึงกันแม้แต่นิดเดียว
  • ไม่ว่า Input จะยาวแค่ไหน Output ที่ได้จะมีความยาวเท่าเดิมตลอด เช่น SHA-256 -> 256 bits หรือ 64 digits
  • ไม่สามารถใช้ Algorithm เดิมกับ Output เพื่อหา Input ดั้งเดิมได้ กล่าวคือถ้า Hash Input A แล้วก็จะได้ output A แล้วถ้าเกิด Hash output A ก็จะได้ output B (ที่ไม่ใช่ Input A)

2.   โปรแกรมการเข้ารหัส Hashing แบบ SHA-256


  • ·         Flowchart ด้านล่างนี้คือโครงสร้างของโปรแกรมการเข้ารหัส

รูป 3 Class diagram ของโปรแกรมการเข้ารหัส



  • ·         รายละเอียดของ class ของโปรแกรม มีดังนี้

รูป 4 method ของ Class โปรแกรมการเข้ารหัส


  • โค้ดของโปรแกรม MyForm.java

อธิบาย 
a) Method MyForm() เป็นคอนสตรักเตอร์ของคลาส หมายความว่า Method นี้จะถูกเรียกใช้โดยอัตโนมัติทุกครั้งที่มีการเรียกคลาส MyForm ซึ่ง Method นี้จะเรียกใช้เมธอด initComponents()
b) Method initComponents() ทำหน้าที่กำหนดออปเจคต่างๆบนหน้าโปรแกรมเช่น Text label, Button 
c) Method ActionListener() จะรอรับ event ที่ผู้ใช้ทำกับโปรแกรม เช่นการคลิ้กปุ่มจะมีการมาเรียกใช้เมธอดนี้


  • โค้ดของโปรแกรม ReadFileLineByLineUsingBufferedReader.java

อธิบาย 
a) Method readFile(String filePath) ทำหน้าที่รับ path ของไฟล์ต้นทางที่จะนำมาเข้ารหัสมาอ่านทีละบรรทัด และค่าที่อ่านได้จะส่งต่อไปยัง เมธอด SHA256Convert2(line) ซึ่งเป็นเมธอดของคลาสแม่เพื่อทำการเข้ารหัส เสร็จแล้วค่าที่เข้ารหัสจะถูกส่งกลับมาเพื่อเขียนลง output file

  • โค้ดของโปรแกรม SHA256Convert.java
อธิบาย 
Method SHA256Convert() เป็นคอนสตรักเตอร์ของคลาส SHA256Convert 
Method getSHA256Hash(String data) เป็นเมธอดที่ใช้ในการเข้ารหัสข้อความโดยการทำ Hashing ด้วยวิธี SHA-256


3.   การรันโปรแกรมการเข้ารหัส Hashing แบบ SHA-256


เริ่มต้นโดยการคลิกเรียกโปรแกรมเข้ารหัสที่ได้เตรียมไว้

รูป 5 หน้าแรกของโปรแกรมการเข้ารหัส

จากนั้นกดปุ่ม “Open File Chooser” เพื่อเลือกไฟล์มาทำการเข้ารหัส

รูป 6 ปุ่มทำการเลือกไฟล์มาทำการเข้ารหัส

เมื่อเลือกไฟล์แล้ว ชื่อไฟล์และ path จะปรากฎที่หน้าโปรแกรม (ในรูปวงสีเหลือง)

รูป 7 ชื่อไฟล์ที่จะทำการเข้ารหัสแบบ hashing

จากนั้นให้กดปุ่ม Convert SHA-256 เพื่อทำการเข้ารหัสไฟล์ที่เลือก โดยโปรแกรมจะเข้ารหัสทีละบรรทัด

รูป 8 กดปุ่มเพื่อทำการเข้ารหัส

ผลลัพท์การเข้ารหัสจะแสดงดังภาพซึ่งจะมีการเข้ารหัสทุกบรรทัด โดยจะสร้างไฟล์ใหม่ขึ้นมาชื่อ sha256_out.txt วางให้ที่ path เดียวกับ file ต้นฉบับ

รูป 9 การเข้ารหัสแบบ SHA-256 จากไฟล์ต้นทาง (ซ้าย) มายังไฟล์ที่ถูก encrypt (ขวา)


No comments:

Post a Comment