Skip to content

Commit c0cdf04

Browse files
committed
first commit
0 parents  commit c0cdf04

38 files changed

+937
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.gradle
2+
/local.properties
3+
/.idea/workspace.xml
4+
.DS_Store

.idea/.name

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

+23
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/copyright/profiles_settings.xml

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/encodings.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

+18
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/appcompat_v7_19_1_0.xml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/libraries/support_v4_19_1_0.xml

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

+10
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/scopes/scope_settings.xml

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

EncryptionExample.iml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" inherit-compiler-output="true">
4+
<exclude-output />
5+
<content url="file://$MODULE_DIR$">
6+
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
7+
<excludeFolder url="file://$MODULE_DIR$/build" />
8+
</content>
9+
<orderEntry type="jdk" jdkName="JDK" jdkType="JavaSDK" />
10+
<orderEntry type="sourceFolder" forTests="false" />
11+
</component>
12+
</module>
13+

app/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

app/app.iml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="EncryptionExample" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
3+
<component name="FacetManager">
4+
<facet type="android-gradle" name="Android-Gradle">
5+
<configuration>
6+
<option name="GRADLE_PROJECT_PATH" value=":app" />
7+
</configuration>
8+
</facet>
9+
<facet type="android" name="Android">
10+
<configuration>
11+
<option name="SELECTED_BUILD_VARIANT" value="debug" />
12+
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
13+
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
14+
<option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
15+
<option name="SOURCE_GEN_TASK_NAME" value="generateDebugSources" />
16+
<option name="ALLOW_USER_CONFIGURATION" value="false" />
17+
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
18+
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
19+
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
20+
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
21+
</configuration>
22+
</facet>
23+
</component>
24+
<component name="NewModuleRootManager" inherit-compiler-output="false">
25+
<output url="file://$MODULE_DIR$/build/classes/debug" />
26+
<exclude-output />
27+
<content url="file://$MODULE_DIR$">
28+
<sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" generated="true" />
29+
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" generated="true" />
30+
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug" isTestSource="false" generated="true" />
31+
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" generated="true" />
32+
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" type="java-resource" />
33+
<sourceFolder url="file://$MODULE_DIR$/build/source/r/test/debug" isTestSource="true" generated="true" />
34+
<sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test/debug" isTestSource="true" generated="true" />
35+
<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test/debug" isTestSource="true" generated="true" />
36+
<sourceFolder url="file://$MODULE_DIR$/build/source/rs/test/debug" isTestSource="true" generated="true" />
37+
<sourceFolder url="file://$MODULE_DIR$/build/res/rs/test/debug" type="java-test-resource" />
38+
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
39+
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
40+
<sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
41+
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
42+
<sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
43+
<sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
44+
<sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
45+
<sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
46+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
47+
<sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
48+
<sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
49+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
50+
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
51+
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
52+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
53+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
54+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
55+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" isTestSource="true" />
56+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
57+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
58+
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
59+
<excludeFolder url="file://$MODULE_DIR$/build/apk" />
60+
<excludeFolder url="file://$MODULE_DIR$/build/assets" />
61+
<excludeFolder url="file://$MODULE_DIR$/build/bundles" />
62+
<excludeFolder url="file://$MODULE_DIR$/build/classes" />
63+
<excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
64+
<excludeFolder url="file://$MODULE_DIR$/build/incremental" />
65+
<excludeFolder url="file://$MODULE_DIR$/build/libs" />
66+
<excludeFolder url="file://$MODULE_DIR$/build/manifests" />
67+
<excludeFolder url="file://$MODULE_DIR$/build/res" />
68+
<excludeFolder url="file://$MODULE_DIR$/build/symbols" />
69+
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
70+
</content>
71+
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
72+
<orderEntry type="sourceFolder" forTests="false" />
73+
<orderEntry type="library" exported="" name="appcompat-v7-19.1.0" level="project" />
74+
<orderEntry type="library" exported="" name="support-v4-19.1.0" level="project" />
75+
</component>
76+
</module>
77+

app/build.gradle

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
apply plugin: 'android'
2+
3+
android {
4+
compileSdkVersion 19
5+
buildToolsVersion "19.0.3"
6+
7+
defaultConfig {
8+
minSdkVersion 14
9+
targetSdkVersion 19
10+
versionCode 1
11+
versionName "1.0"
12+
}
13+
buildTypes {
14+
release {
15+
runProguard false
16+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
17+
}
18+
}
19+
}
20+
21+
dependencies {
22+
compile fileTree(dir: 'libs', include: ['*.jar'])
23+
compile 'com.android.support:appcompat-v7:19.+'
24+
}

app/proguard-rules.txt

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Add project specific ProGuard rules here.
2+
# By default, the flags in this file are appended to flags specified
3+
# in /Applications/Android Studio.app/sdk/tools/proguard/proguard-android.txt
4+
# You can edit the include path and order by changing the ProGuard
5+
# include property in project.properties.
6+
#
7+
# For more details, see
8+
# http://developer.android.com/guide/developing/tools/proguard.html
9+
10+
# Add any project specific keep options here:
11+
12+
# If your project uses WebView with JS, uncomment the following
13+
# and specify the fully qualified class name to the JavaScript interface
14+
# class:
15+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16+
# public *;
17+
#}

app/src/main/AndroidManifest.xml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="com.codemonkeylabs.encryptionexample.app" >
4+
5+
<application
6+
android:allowBackup="true"
7+
android:icon="@drawable/ic_launcher"
8+
android:label="@string/app_name"
9+
android:theme="@style/AppTheme" >
10+
<activity
11+
android:screenOrientation="portrait"
12+
android:name="com.codemonkeylabs.encryptionexample.app.EncryptionActivity"
13+
android:label="@string/app_name" >
14+
<intent-filter>
15+
<action android:name="android.intent.action.MAIN" />
16+
17+
<category android:name="android.intent.category.LAUNCHER" />
18+
</intent-filter>
19+
</activity>
20+
</application>
21+
22+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.codemonkeylabs.encryptionexample.app;
2+
3+
import android.util.Base64;
4+
import android.util.Log;
5+
6+
import javax.crypto.Cipher;
7+
import javax.crypto.spec.IvParameterSpec;
8+
import javax.crypto.spec.SecretKeySpec;
9+
10+
/**
11+
* Created by brianplummer on 4/29/14.
12+
*/
13+
public class AESEncryptDecrypt {
14+
15+
16+
public static final String NOT_SECRET_ENCRYPTION_KEY = "1234567812345678";
17+
private static final String IVS = "12345678";
18+
19+
20+
public String encrypt(String inData, byte[] key){
21+
byte[] encryptedData = aesEncrypt(inData.getBytes(), key,
22+
IVS.getBytes());
23+
return new String(Base64.encode(encryptedData,Base64.NO_WRAP));
24+
}
25+
26+
public String decrypt(String inData, byte[] key){
27+
byte[] decryptData = aesDecrypt(Base64.decode(inData,Base64.NO_WRAP),
28+
key,IVS.getBytes());
29+
return new String(decryptData);
30+
}
31+
32+
//Ripped from:
33+
// http://stackoverflow.com/questions/13579326/aes-128-encryption-in-android-and-net-with-custom-key-and-iv
34+
35+
public static byte[] aesEncrypt(byte[] data, byte[] key, byte[] ivs) {
36+
try {
37+
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
38+
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
39+
byte[] finalIvs = new byte[16];
40+
int len = ivs.length > 16 ? 16 : ivs.length;
41+
System.arraycopy(ivs, 0, finalIvs, 0, len);
42+
IvParameterSpec ivps = new IvParameterSpec(finalIvs);
43+
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivps);
44+
return cipher.doFinal(data);
45+
} catch (Exception e) {
46+
Log.e("##########",e.getMessage(),e);
47+
}
48+
49+
return null;
50+
}
51+
52+
public static byte[] aesDecrypt(byte[] data, byte[] key, byte[] ivs) {
53+
try {
54+
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
55+
SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES");
56+
byte[] finalIvs = new byte[16];
57+
int len = ivs.length > 16 ? 16 : ivs.length;
58+
System.arraycopy(ivs, 0, finalIvs, 0, len);
59+
IvParameterSpec ivps = new IvParameterSpec(finalIvs);
60+
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivps);
61+
return cipher.doFinal(data);
62+
} catch (Exception e) {
63+
e.printStackTrace();
64+
}
65+
66+
return null;
67+
}
68+
69+
}

0 commit comments

Comments
 (0)