*Single password on any sites = Unsafe

The source code of the program of mine is only in 1 file and show below.

ต้นฉบับรหัสโปรแกรมของผมมีเพียงไฟล์เดียวและแสดงดังข้างล่างนี้

package com.example.sha1md5demo;

import android.app.Activity;
import android.content.ClipboardManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MainActivity extends Activity implements OnClickListener{

	private Button mSha1Button;
	private Button mMd5Button;
	private EditText mInputEdit;
	private TextView mShowText;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		mSha1Button = (Button)findViewById(R.id.main_sha1_button);
		mMd5Button = (Button)findViewById(R.id.main_md5_button);
		mInputEdit = (EditText)findViewById(R.id.main_input_edittext);
		mShowText = (TextView)findViewById(R.id.main_show_encrypt_textview);

		mSha1Button.setOnClickListener(this);
		mMd5Button.setOnClickListener(this);
	}

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

		int btnClick = v.getId();
		String text = null;

		String source = mInputEdit.getText().toString();

		switch (btnClick) {
			case R.id.main_sha1_button:
				text = getHash(source, "SHA-1");
				break;

			case R.id.main_md5_button:
				text = getHash(source, "MD5");
				break;

			default:
				break;
		}

		//Show on screen
		mShowText.setText(text.toLowerCase());

		//Keep to clipboard
		ClipboardManager myClipboard;
		myClipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
		android.content.ClipData myClip = android.content.ClipData.newPlainText("text", text.toLowerCase());
	    myClipboard.setPrimaryClip(myClip);

	    Toast.makeText(getApplicationContext(), "Result copied to clipboard.",
	    Toast.LENGTH_SHORT).show();
	}

	public String getHash(String stringToHash, String algorithm) {
	    MessageDigest digest = null;
		try {
			digest = MessageDigest.getInstance(algorithm);
		} catch (NoSuchAlgorithmException e1) {
			// TODO Auto-generated catch block
			return "Unsupport algorithm.";
		}

	    byte[] result = null;
		try {
			result = digest.digest(stringToHash.getBytes("UTF-8"));
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			return "Unsupport language encoder.";
		}

		//Convert bytes to string
	    StringBuilder sb = new StringBuilder();
	    for (byte b : result) {
	        sb.append(String.format("%02X", b));
	    }
	    String mEncText = sb.toString(); 

		return mEncText;
	}
}

The important part of the program is highlighted as follows.

– Line 34 and 35 for support when you click at SHA1 or MD5 button.

– Line 49 send parameter to “gethash” for request result from SHA1 algorithm.

– Line 53 send parameter to “gethash” for request result from MD5 algorithm.

– Line 61 show the result on the screen.

– Line 64-67 for putting the result in the clipboard

– Line 76 call method of class “java.security.MessageDigest” for selected algorithm

– Line 84 process the method “digest” for result of Hash

ส่วนที่สำคัญของโปรแกรมข้างบนที่ถูกเน้นสีไว้ มีดังต่อไปนี้

บรรทัดที่ 34 และ 35 รองรับการกดคลิ๊กเลือกปุ่ม SHA1 หรือ MD5

บรรทัดที่ 49 ส่งพารามิเตอร์ไปที่ฟังก์ชั่น “gethash” เพื่อหาผลลัพธ์ด้วยอัลกอริทึ่ม SHA1

บรรทัดที่ 53 ส่งพารามิเตอร์ไปที่ฟังก์ชั่น “gethash” เพื่อหาผลลัพธ์ด้วยอัลกอริทึ่ม MD5

บรรทัดที่ 61 แสดงผลลัพธ์บนหน้าจอ

บรรทัดที่ 64-67 เพื่อเก็บผลลัพธ์ที่ได้ลงใน clipboard

บรรทัดที่ 76 เรียกใช้ method จากคลาส  “java.security.MessageDigest” ให้อัลกอริทีม ที่เลือกใช้

บรรทัดที่ 84 ดำเนินกระบวนการของ method “digest” เพื่อหาผลลัพธ์จาก hash

 

Hope you will not use the single password for all accounts on the internet anymore. You may keep your all password for all website in the program that I’m posting in “Keep your secrets with yours“.

หวังว่าคุณคงไม่ใช่หมายเลขเพียงชุดเดียว เป็นรหัสผ่านเข้าสู่บัญชีต่างๆบน Internet อีกต่อไปนะครับ ซึ่งคุณสามารถเก็บรหัสผ่านของเว๊บไซท์ต่างๆของคุณไว้ในโปรแกรมที่ผมกำลังเขียนบทความอยู่ที่ “Keep your secrets with yours“นะครับ

 

Good luck…

โชคดี……

 

 

3 comments

Leave a Reply

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