RSA String Encryption, security
In this tutorial, I show you how to encrypt a string with public key in Android.
First we make a 2048-bit RSA private key in linux:
- $ openssl genrsa -out private_key.pem 2048
Then convert private Key to PKCS#8 format, what Java can read: (in Linux)
- $ openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key.pem -out private_key.der -nocrypt
Then output public key portion in DER format, what Java can read: (in Linux)
- $ openssl rsa -in private_key.pem -pubout -outform DER -out public_key.der
Now you have 3 files:
- private_key.pem (you can use this in php to decrypt)
- private_key.der (with this you can decrypt on Android)
- public_key.der (that key use we to encrypt now)
When you have the files, copy public_key.der to the root of your SD-card.
Let’s create encrypt method, that wait for the key path and the string to encode, and return String:
Next create PublicKey object from the public_key file:
- byte[] encodedKey = new byte[instream.available()];
- instream.read(encodedKey);
Now init chiper, than encrypt the string. Encrypted string in byte[]:
- Cipher pkCipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING&quo
t;); - pkCipher.init(Cipher.ENCRYPT_MODE, pkPublic);
- byte[] encryptedInByte = pkCipher.doFinal(original.getBytes());
Now create a new class next to the Main activity that called Base64Coder. It should look like:
- package your.package.name;
- public class Base64Coder {
- private static char[] map1 = new char[64];
- static {
- int i = 0;
- for (char c = 'A'; c <= 'Z'; c++)
- map1[i++] = c;
- for (char c = 'a'; c <= 'z'; c++)
- map1[i++] = c;
- for (char c = '0'; c <= '9'; c++)
- map1[i++] = c;
- map1[i++] = '+';
- map1[i++] = '/';
- }
- private static byte[] map2 = new byte[128];
- static {
- for (int i = 0; i < map2.length; i++)
- map2[i] = -1;
- for (int i = 0; i < 64; i++)
- map2[map1[i]] = (byte) i;
- }
- }
- public static char[] encode(byte[] in) {
- return encode(in, in.length);
- }
- public static char[] encode(byte[] in, int iLen) {
- int oDataLen = (iLen * 4 + 2) / 3;
- int oLen = ((iLen + 2) / 3) * 4;
- char[] out = new char[oLen];
- int ip = 0;
- int op = 0;
- while (ip < iLen) {
- int i0 = in[ip++] & 0xff;
- int i1 = ip < iLen ? in[ip++] & 0xff : 0;
- int i2 = ip < iLen ? in[ip++] & 0xff : 0;
- int o0 = i0 >>> 2;
- int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
- int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
- int o3 = i2 & 0x3F;
- out[op++] = map1[o0];
- out[op++] = map1[o1];
- out[op] = op < oDataLen ? map1[o2] : '=';
- op++;
- out[op] = op < oDataLen ? map1[o3] : '=';
- op++;
- }
- return out;
- }
- }
- return decode(s.toCharArray());
- }
- public static byte[] decode(char[] in) {
- int iLen = in.length;
- if (iLen % 4 != 0)
- "Length of Base64 encoded input string is not a multiple of 4.");
- while (iLen > 0 && in[iLen - 1] == '=')
- iLen--;
- int oLen = (iLen * 3) / 4;
- byte[] out = new byte[oLen];
- int ip = 0;
- int op = 0;
- while (ip < iLen) {
- int i0 = in[ip++];
- int i1 = in[ip++];
- int i2 = ip < iLen ? in[ip++] : 'A';
- int i3 = ip < iLen ? in[ip++] : 'A';
- if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127)
- "Illegal character in Base64 encoded data.");
- int b0 = map2[i0];
- int b1 = map2[i1];
- int b2 = map2[i2];
- int b3 = map2[i3];
- if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0)
- "Illegal character in Base64 encoded data.");
- int o0 = (b0 << 2) | (b1 >>> 4);
- int o1 = ((b1 & 0xf) << 4) | (b2 >>> 2);
- int o2 = ((b2 & 3) << 6) | b3;
- out[op++] = (byte) o0;
- if (op < oLen)
- out[op++] = (byte) o1;
- if (op < oLen)
- out[op++] = (byte) o2;
- }
- return out;
- }
- private Base64Coder() {
- }
- }
Now you can convert the encoded byte[] to Base64. From the Base64 create String, and return it:
Also look like this:
- public String encrypt(String filePath, String original) throws IOException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
- byte[] encodedKey = new byte[instream.available()];
- instream.read(encodedKey);
- Cipher pkCipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING&quo
t;); - pkCipher.init(Cipher.ENCRYPT_MODE, pkPublic);
- byte[] encryptedInByte = pkCipher.doFinal(original.getBytes());
- return encryptedInString;
- }
An example how to use this implemented method:
- encrypt("/sdcard/public_key.der&q
uot;,"text to encrypt");
For example: that encrypted string can you send to a web service, and decrypt with the private_key.pem in PHP
New tutorials from Helloandroid
Recent Apps
Android on Twitter
-
@lorealmichelle (Loreal Witherspoon ♔)I've just received an achievement: Tax Collector http://t.co/vektXV7M #Android #Androidgames #Gameinsight
10 min 30 sec ago -
@mawangbird (정진현)Start playing Paradise Island on Android http://t.co/QhMy4qEk #Android #Androidgames #Gameinsight http://t.co/FxWuH7D6
10 min 32 sec ago -
@babybluesnshn11 (Dawn wolf)I've just received an achievement: Parks Developer http://t.co/poJCRd2M #Android #Androidgames
10 min 40 sec ago -
@lyazi256 (lyazi)
The "Farm" collection in Big Business has been completed! 71 http://t.co/qPVxRX47 #android #gameinsight #androidgames
10 min 43 sec ago -
@adrianthompkins (Adrian Thompkins)#Android Stuff: S-Voice gets gagged: Samsung blocks leaked APKs http://t.co/TiWjmmux
10 min 43 sec ago
Poll
Useful resources
Android Development Projects
- Private project for Petterpp1 [WRD] by geomaster909
- Modifications on an Android Game by tymex
- app dev for techcity by dany2g
- Android App by dvlinh
- Iphone app by nabzyd
- Betfair Mobile App by Daaniel
- Need App Developer/Designer for iPhone, iPad by lplco
- Android Maps - Saving GeoLocations to MySql database. by adelshehri
- Prototype Android Apps display Information from database by getitonline
- Metal Weigh Calculator by mpmakwana



Comments
COOLI
اغاني دخون
music اغاني
اغاني الجدعاني
جلسات شكشكه
جلسات عبودي المدينه
كلمات اغاني
موضي الشمراني
جلسات مطربات
youtube
اغاني خليجية
اخبار الفن و الفنانين
صور فنانات
نغم الغربيه
أسواق المنطقة الغربية
الحياة الزوجية
اناقة ادم
اناقة حوا
منتدى العروس
اغاني عبودي المدينه
اغاني دخون
اغاني دخون
اغاني دخون
جلسات مطربات
ksaflhcom
شات مصر شات مصري شات مصرى دردشة مصرية دردشه مصريه دردشة فلسطينية شات فلسطين
منتدى منتدي منتديات منتديات مصر
دليل دليل مواقع دليل الموقع دردشة
ksaflhcom
جلسات مطرباتاغاني دخونكوفيراتالحياة الزوجيةطرب توبشكشكهزفه توبموضي الشمرانيزفات اعراسارقام طقاقاتمنتدى العروساناقة ادماناقة حواأسواق المنطقة الغربيةصور فناناتاخبار الفن و الفنانيناغاني خليجيةاغاني youtubeجلسات مطرباتجلسات موضي الشمرانيكلمات اغانيجلسات عبودي المدينهجلسات شكشكهاغاني الجدعانيشات
Great ArticlE >> ThX AloT
Great ArticlE >> ThX AloT ..
I ReallY EnjoyeD ReadinG it
It is very useful .. and u have great style
I hope u can visit my site below
And .. I,m Waiting for more
شات مصرى ,
شات مصرى ,
شات مصرى ,
شات مصرية ,
شات مصريه ,
دردشة مصرية ,
دردشة بنت مصرية ,
شات بنت مصرية ,
شات بنت مصر ,
دردشة بنت مصر ,
شات ,
دردشه مصريه ,
شات بنات مصر ,
دردشة بنات مصر ,
شات مصرى بنات ,
شات مصر ,
دردشة ,
شات اسكندرية ,
شات القاهرة ,
شات المنصورة ,
شات طنطا ,
شات السويس ,
شات الشرقية ,
شات المنوفية ,
شات الفيوم ,
شات بنى سويف ,
شات سوهاج ,
شات الصعيد ,
شات الزقازيق ,
شات جامعة القاهرة ,
شات جامعة اسكندرية ,
شات بنت السعودية ,
شات بنت البحرين ,
شات بنت الكويت ,
شات بنت فلسطين ,
شات بنت المغرب ,
شات بنت الامارات ,
شات بنت اليمن ,
شات بنت العراق ,
شات مصراوى ,
شات بنات ,
روتانا سينما ,
روتانا سينما مشاهدة مباشرة ,
روتانا سينما بث مباشر ,
روتانا سينما اونلاين ,
I hope u can find something useful About it .. Enjoy
Thanks .. lol i had to read it twice
<a href="http://www.ksa-flh.com">غزل</a>
غزل
منتديات غزل المدينه
قزل المدينه
شات غزل
دردشة غزل المدينه
منتدى غزل المدينه
موقع غزل المدينه
اغاني شكشكة
عالم المتزوجين - زوجي وزوجتي - عالم الحياة الزوجية
زفات اعراس زفات العروس
اغاني غزل المدينه
شكشكه بنيتي الحبوبة طيران
دخون
شكشكة اخلاص جدة
اغاني اشواق السامري
اغاني مطربات الافراح
اغاني خديجه معاذ mp3
صور موضي الشمراني
ممحونه
اغنية قلب قلب
اغنية مرت سنه موضي الشمراني
اغاني موضي الشمراني
اغنية الوظيفة
اغاني بدون موسيقى
شكشكة اخلاص جدة
شكشكه2012 mp3 - حفلات شكشكة - موقع اغاني شكشكة - اغاني شكشكه
القضيب
اغاني mp3 موسيقى Mp3 songs - music
اغاني خليجيه - اغاني عربية - اغاني جديدة - تحميل اغاني MP3 - اغاني طرب توب, اغاني شرقية 2012- اغاني
نغم الغربيه
اغاني ماجد المهندس
زفات اعراس زفات العروس
Netlog النت لوق
منتدى العروس
اناقة حواء
استفسارات الطقاقات و الحنايات
ارقام فنانات المدينه
ارقام فنانات الافراح - ارقام الدقاقات والطقاقات
رقم دخون
ارقام طقاقات الرياض
أرشيف Google
شات نغم الغربيه
صور فنانين - فنانات - مطربين - مطربات - مغنيات - مشاهير 2012
اخبار الفن - اخبار المشاهير - اخبار الفنانين 2012
المطلقات - و الارامل - و المتأخرات في الزواج
كلمات اغاني - كلمات اغاني عراقية عربية اجنبية خليجية 2012
عبودي المدينه
كلمات لا اسامحك يافلان
منتدى اغاني الجدعاني
اغاني ماجد الجدعاني mp3 2012
اغاني الجدعاني 2012 - الجدعاني حزين - الجدعاني شكشكه
مسجات و رسائل 2012 وسائط ونغمات الجوال 2011
اغانى اخلاص جده 2012, تحميل اغانى اخلاص جده 2012, تنزيل اغانى اخلاص جده 2012
اخلاص جده اغاني جديده خليجي mp3 2012
اغاني خديجه - اغاني خديجه معاذ بصيغة mp3 - شكشكه خديجه معاذ
ksa-flh
غزل
منتديات غزل المدينه
قزل المدينه
شات غزل
دردشة غزل المدينه
منتدى غزل المدينه
موقع غزل المدينه
اغاني شكشكة
عالم المتزوجين - زوجي وزوجتي - عالم الحياة الزوجية
زفات اعراس زفات العروس
اغاني غزل المدينه
شكشكه بنيتي الحبوبة طيران
دخون
شكشكة اخلاص جدة
اغاني اشواق السامري
اغاني مطربات الافراح
اغاني خديجه معاذ mp3
صور موضي الشمراني
ممحونه
اغنية قلب قلب
اغنية مرت سنه موضي الشمراني
اغاني موضي الشمراني
اغنية الوظيفة
اغاني بدون موسيقى
شكشكة اخلاص جدة
شكشكه2012 mp3 - حفلات شكشكة - موقع اغاني شكشكة - اغاني شكشكه
القضيب
اغاني mp3 موسيقى Mp3 songs - music
اغاني خليجيه - اغاني عربية - اغاني جديدة - تحميل اغاني MP3 - اغاني طرب توب, اغاني شرقية 2012- اغاني
نغم الغربيه
اغاني ماجد المهندس
زفات اعراس زفات العروس
Netlog النت لوق
منتدى العروس
اناقة حواء
استفسارات الطقاقات و الحنايات
ارقام فنانات المدينه
ارقام فنانات الافراح - ارقام الدقاقات والطقاقات
رقم دخون
ارقام طقاقات الرياض
أرشيف Google
شات نغم الغربيه
صور فنانين - فنانات - مطربين - مطربات - مغنيات - مشاهير 2012
اخبار الفن - اخبار المشاهير - اخبار الفنانين 2012
المطلقات - و الارامل - و المتأخرات في الزواج
كلمات اغاني - كلمات اغاني عراقية عربية اجنبية خليجية 2012
عبودي المدينه
كلمات لا اسامحك يافلان
منتدى اغاني الجدعاني
اغاني ماجد الجدعاني mp3 2012
اغاني الجدعاني 2012 - الجدعاني حزين - الجدعاني شكشكه
مسجات و رسائل 2012 وسائط ونغمات الجوال 2011
اغانى اخلاص جده 2012, تحميل اغانى اخلاص جده 2012, تنزيل اغانى اخلاص جده 2012
اخلاص جده اغاني جديده خليجي mp3 2012
اغاني خديجه - اغاني خديجه معاذ بصيغة mp3 - شكشكه خديجه معاذ
شات صوتي | دردشة صوتية | كلام
شات صوتي
| دردشة صوتية
|
كلام
| شات كلام
|
دردشة كلام
| دردشة صوتية
|
شات صوتي
| شات
|
Chat Voice
| ahj w,jd
شات صوتي
| دردشة صوتية
|
شات صوتي
| دردشة صوتية
|
دردشه
| دردشة
|
صوتي
| صوتية
|
شات صوتي
| دردشة صوتية
|
شات صوتي
| دردشة صوتية
|
الكلام
| دردشه صوتيه
|
]v]am w,jdm
| ]v]ai w,jdi
شات صوتي
شات صوتي
شات صوتي