Keep your secrets with yours.

 

@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub

		int key = v.getId();
		switch (key) {
		case R.id.main_encrypt_button:
			String source = mInputEdit.getText().toString();

			AESEnc aesEncrypt = new AESEnc();

			try {
				mEncryptText = aesEncrypt.encrypt(source.getBytes());
				mKey = aesEncrypt.getKey();

			} catch (Exception e) {
				// TODO Auto-generated catch block

				e.printStackTrace();
			}

			java.math.BigInteger bi = new java.math.BigInteger(mEncryptText);
			mShowText.setText("encrypt:"+bi.abs().toString(16)+"\n");
			break;

		case R.id.main_decrypt_button:
			AESEnc aesDecrypt = new AESEnc(mKey);
			String text = null;
			try {
				text = new String(aesDecrypt.decrypt(mEncryptText));
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			mShowText.setText("decrypt:"+text+"\n");
			break;

		default:
			break;
		}
	}

The line between 37 and 78 is the part that support the above part at 32 and line 33 which I highlighted. The first part (44 – 60) that is highlighted for processing when you press the Encrypt button. Meanwhile the second highlight part (63-73) for support clicking on Decrypt button.

ตั้งแต่ บรรทัดที่ 37 ถึง 78 เป็นส่วนที่รองรับการทำงานของบรรทัดที่ 32 และ บรรทัดที่ 33 ที่ผมบอกไว้ก่อนหน้านี้ ซึ่งถ้าแยกแยะให้ชัดเจนมากขึ้น ส่วนแรกที่ผมเน้นสีไว้คือส่วนที่เริ่มจากบรรทัดที่ 44 – 60 เป็นส่วนที่รองรับการกดปุ่ม Encrypt ในขณะที่ส่วนที่ 2 เริ่มจากบรรทัดที่ 63 – 73 เป็นส่วนที่รองรับการกดปุ่ม Decrypt

The 1st line of the 1st part, at line 44 it declares the “source” variable to keep the original word that you type on screen input. Another essential point is the line 46, 49 and 50 that call the public method of class AESEnc which its source is in file AESEnc.java that has 4 public methods and 1 private method.

บรรทัดที่ 44 ซึ่งเป็นบรรทัดแรกของส่วนแรก ใช้สำหรับประกาศตัวแปรเพื่อรองรับข้อมูลที่คุณป้อนใส่ในช่องรับบนหน้าจอโปรแกรม จุดสำคัญอื่นๆอยู่ที่บรรทัด 46, 49 และ 50 ซึ่งเรียกใช้งาน method ของ class ชื่อ AESEnc ซึ่งโปรแกรมต้นฉบับถูกเก็บอยู่ในไฟล์ชื่อ AESEnc.java ซึ่งมี method ที่สามารถเรียกใช้จากภายนอกได้ 4 method และมี method สำหรับใช้ภายใน class เอง 1 method

Furthermore, it has 2 lines which are 46 and 63 from the both part that call the same method with some different. The 1st part use method without any variable pass through but the 2nd has. Because the decryption part use the key from the encryption part which is very important for decryption. It has to use the same key. Every line that I refer to plus with line 66 is the point of the program that jump to and get something back from the AESEnc class. So I will bring you to the details in file “AESEnc.java” on the next page.

นอกจากนี้ ยังมี 2 บรรทัดจากทั้งสองส่วนคือบรรทัดที่ 46 และบรรทัดที่ 63 เรียกใช้ method เดียวกันแต่มีจุดต่างกันตรงที่ ในส่วนแรกไม่มีการผ่านค่าตัวแปรใดๆให้กับ method แต่อีกส่วนหนึ่งมี เพราะส่วนของการถอดรหัส ใช้ตัวแปรที่เก็บค่า key จากที่กำหนดโดยโปรแกรมในส่วน encryption ซึ่งเป็นจุดสำคัญมากๆ กล่าวคือ การถอดรหัสจะต้องใช้ key เดียวกับการเข้ารหัสนั่นเอง ทุกๆบรรทัดที่ผมอ้างถึงในหน้านี้ รวมกับบรรทัดที่ 66 อีกบรรทัดหนึ่ง คือจุดที่โปรแกรมในส่วนนี้กระโดดเข้าไปทำงานและได้รับค่าบางอย่างคืนมาจาก calsss ที่ชื่อ AESEnc ดังนั้น ผมจะพาคุณไปดูรายละเอียดในไฟล์ “AESEnc.java” กันในหน้าต่อไป

2 comments

Leave a Reply

Your email address will not be published. Required fields are marked *