android加密
‘壹’ android md5加密怎么用
java">
importjava.security.MessageDigest;
publicclassMD5Tool{
publicstaticStringMD5(Stringstr){
MessageDigestmd5=null;
try{
md5=MessageDigest.getInstance("MD5");
}catch(Exceptione){
e.printStackTrace();
return"";
}
char[]charArray=str.toCharArray();
byte[]byteArray=newbyte[charArray.length];
for(inti=0;i<charArray.length;i++){
byteArray[i]=(byte)charArray[i];
}
byte[]md5Bytes=md5.digest(byteArray);
StringBufferhexValue=newStringBuffer();
for(inti=0;i<md5Bytes.length;i++)
{
intval=((int)md5Bytes[i])&0xff;
if(val<16)
{
hexValue.append("0");A
}
hexValue.append(Integer.toHexString(val));
}
returnhexValue.toString();
}
publicstaticStringencryptmd5(Stringstr){
char[]a=str.toCharArray();
for(inti=0;i<a.length;i++)
{
a[i]=(char)(a[i]^'l');
}
Strings=newString(a);
returns;
}
}
在要加密的地方,调用这个类的MD5方法就可以加密了,解密就调用这个类的encryptmd5方法,不过好像解密方法不完全正确,毕竟是解密,不可能对复杂字符加密后的解密完全正确。不过加密算法是完全没有问题的。
‘贰’ android 密钥 怎么加密
有这样2个类:
KeyGenerator:此类提供(对称)密钥生成器的功能。
Cipher:此类为加密和解密提供密码功能。
在加密和解密过程中Cipher会使用到KeyGenerator生成的key进行加密(生成密文)和解密(解析密文)
[java] view plainprint?
01.public class Main {
02. public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
03. //-------------------加密过程---------------------------------
04. //产生一个key,需要关联一种“DES”算法
05. KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
06. SecretKey deskey = keyGenerator.generateKey();
07. //需要加密的info
08. String info = "12345678";
09. //输出加密前的密文内容
10. System.out.println(""+info);
11. //产生一个Random
12. SecureRandom sr = new SecureRandom();
13. byte[] cipherByteEncrypt = null;
14. try {
15. Cipher c1 = Cipher.getInstance("DES");
16. c1.init(Cipher.ENCRYPT_MODE, deskey, sr);
17. //生成密文
18. cipherByteEncrypt = c1.doFinal(info.getBytes());
19. } catch (Exception e) {
20. e.printStackTrace();
21. }
22. //输出加密后的密文内容
23. System.out.println(""+new String(cipherByteEncrypt,"ISO-8859-1"));
24.
25.
26. //-------------------解密过程-----------------------------------
27. //产生一个Random
28. sr = new SecureRandom();
29. byte[] cipherByteDecrypt = null;
30. try {
31. Cipher c1 = Cipher.getInstance("DES");
32. c1.init(Cipher.DECRYPT_MODE, deskey, sr);
33. //解析密文
34. cipherByteDecrypt = c1.doFinal(cipherByteEncrypt);
35. } catch (Exception e) {
36. e.printStackTrace();
37. }
38. System.out.println(""+new String(cipherByteDecrypt,"ISO-8859-1"));
39.
40. }
41.
42.}
public class Main {
public static void main(String[] args) throws NoSuchAlgorithmException, UnsupportedEncodingException {
//-------------------加密过程---------------------------------
//产生一个key,需要关联一种“DES”算法
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
SecretKey deskey = keyGenerator.generateKey();
//需要加密的info
String info = "12345678";
//输出加密前的密文内容
System.out.println(""+info);
//产生一个Random
SecureRandom sr = new SecureRandom();
byte[] cipherByteEncrypt = null;
try {
Cipher c1 = Cipher.getInstance("DES");
c1.init(Cipher.ENCRYPT_MODE, deskey, sr);
//生成密文
cipherByteEncrypt = c1.doFinal(info.getBytes());
} catch (Exception e) {
e.printStackTrace();
}
//输出加密后的密文内容
System.out.println(""+new String(cipherByteEncrypt,"ISO-8859-1"));
//-------------------解密过程-----------------------------------
//产生一个Random
sr = new SecureRandom();
byte[] cipherByteDecrypt = null;
try {
Cipher c1 = Cipher.getInstance("DES");
c1.init(Cipher.DECRYPT_MODE, deskey, sr);
//解析密文
cipherByteDecrypt = c1.doFinal(cipherByteEncrypt);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(""+new String(cipherByteDecrypt,"ISO-8859-1"));
}
}输出:
12345678
3M±@*:?;???+j??? ---------------->这是密文
12345678
‘叁’ 安卓加密的安卓开发术语
1.混淆源码。代码混淆(Obfuscatedcode)亦称花指令,可以借助一些工具,市场有很多高级混淆代码工具。花指令的基本原理是由设计者特别构思一些指令,可以使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。文件夹混淆是利用Android系统环境下的文件夹名的特殊性来对源码文件夹进行混淆,让混淆后的文件夹在Window看起来失去原有的逻辑性,但是完全不影响其在Android系统上的运行。Android技术验证的原理是在代码启动的时候本地获取签名信息后对签名信息进行检验来判断自己的应用是否是正版,如果签名信息不是正版则提示盗版或者直接崩溃。
2.使用伪加密保护方式,通过java代码对APK(压缩文件)进行伪加密,其修改原理是修改连续4位字节标记为”PK0102”的后第5位字节,奇数表示不加密偶数表示加密。伪加密后的APK不但可以防止PC端对它的解压和查看也同样能防止反编译工具编译。
3.通过标志尾添加其他数据从而防止PC工具解压反编译,这样处理后把APK看做压缩文件的PC端来说这个文件被破坏了,所以你要对其进行解压或者查看都会提示文件已损坏,用反编译工具也会提示文件已损坏,但是它却不会影响在Android系统里面的正常运行和安装而且也能兼容到所有系统
4.对DEX、RES、SO库等主要文件进行加密保护。Dex文件是APK中最重要、最需要保护的,因为dex中存放了代码的信息,如果是一个没有做过任何保护的APK,破解者通过使用dex2jar和jd-gui简单几步就可以查看到源码。同样,SO库文件是APK的核心代码,一旦被破解,APK就很容易被破解了。不过这方面对开发者的技术要求很高,想要简单的话,就借助类似于爱加密这种第三方工具。通过使用加壳技术,对dex文件做了一层保护壳,这样破解者就无法通过正常手段反编译出代码文件,从而保护代码的安全。
‘肆’ 在android中如何打开加密过的sqlite数据库
在ANDROID中,应用的数据是私有的,你要得到其他应用的数据,可以通过ContentProvider来实现。
‘伍’ Android APP加密方法都有哪些
伪加密是Android4.2.x系统发布前的Android加密方式之一,通过java代码对APK(压缩文件)进行伪加密,其修改原理是修改连续4位字节标记为”P K 01 02”的后第5位字节,奇数表示不加密偶数表示加密。
Android APP加密方法都有哪些?
虽然伪加密可以起到一定防破解作用,但也会出现问题,首先使用伪加密对其 Android APK加密后市场无法对其进行安全检测,导致部分市场会拒绝这类APK上传;其次,伪加密的加密方式和解密方式也早已公布导致它的安全程度也大大降低;再次,Android4.2.x系统无法安装伪加密的APK;最后伪加密只是对APK做简单保护,在java层源码加壳保护、核心so库、资源文件、主配文件、第三方架包方面却没有任何保护处理。Android APP加密方法都有哪些?
混淆保护
把原来有具体含义的类名,变量名,方法名,修改成让人看不懂的名字,例如方法名getUserName编程了方法名。Android APP加密方法都有哪些?
混淆保护只是增加了代码阅读难度,对于破解基本上是没有实质性作用的!Android APP加密方法都有哪些?
运行时验证
运时验证,主要是指在代码启动的时候本地获取签名信息然后对签名信息进行检验来判断自己的应用是否是正版,如果签名信息不是正版则提示盗版或者直接崩溃。当然你可以把必要的数据放在服务器端。Android APP加密方法都有哪些?破解:找到smali文件中,判断是否相等的部分。改为常量true,即失效。
总之,反编译一些apk之后,只要是java代码写的总会有smil文件。对于smil文件,如果耐心读的话,还是可以查看到一些关键代码的。
相较于应用来说,游戏apk因为采用cocos2d-x或者 unity3D,采用的是c++和c# 编写的跨平台程序,在apk采用JNI的方式。所以没有smali,可以防止静态被破解apk包。Android APP加密方法都有哪些?
当然游戏包apk在运行的时候,会把.*so加载到内存中。动态也是可以在内存中抓取相应的数据。只不过NDK相对于smali破解来说,根部不是一个层级的关系。=
‘陆’ 如何将md5运用在android进行加密
/*
* MD5加密
*/
private String getMD5Str(String str) {
MessageDigest messageDigest = null;
try {
messageDigest = MessageDigest.getInstance("MD5");
messageDigest.reset();
messageDigest.update(str.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException e) {
System.out.println("NoSuchAlgorithmException caught!");
System.exit(-1);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
byte[] byteArray = messageDigest.digest();
StringBuffer md5StrBuff = new StringBuffer();
for (int i = 0; i < byteArray.length; i++) {
if (Integer.toHexString(0xFF & byteArray[i]).length() == 1)
md5StrBuff.append("0").append(Integer.toHexString(0xFF & byteArray[i]));
else
md5StrBuff.append(Integer.toHexString(0xFF & byteArray[i]));
}
//16位加密,从第9位到25位
return md5StrBuff.substring(8, 24).toString().toUpperCase();
}
‘柒’ android 接口数据如何加密
方法步骤如下:
1.选择要发布的项目,右键如下:
7.点击Finish完成发布,在相应的位置生成两个文件为:
XX.apk和步骤4所起的文件名。
‘捌’ 求安卓加密,安卓应用加密方式
android是用java语言开发的,java语言,JDK给我们提供了非常多的加密算法
如基本的单向加密算法:
BASE64 严格地说,属于编码格式,而非加密算法
MD5(Message Digest algorithm 5,信息摘要算法)
SHA(Secure Hash Algorithm,安全散列算法)
HMAC(Hash Message Authentication Code,散列消息鉴别码)
复杂的对称加密(DES、PBE)、非对称加密算法:
DES(Data Encryption Standard,数据加密算法)
PBE(Password-based encryption,基于密码验证)
RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)DH(Diffie-Hellman算法,密钥一致协议)
DSA(Digital Signature Algorithm,数字签名)
ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)
以下就是讲解BASE64、MD5、SHA、HMAC几种方法
MD5、SHA、HMAC这三种加密算法,可谓是非可逆加密,就是不可解密的加密方法。我们通常只把他们作为加密的基础。单纯的以上三种的加密并不可靠。
一. BASE64
按 照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)
常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。
二. MD5
MD5 -- message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都 是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文 件是否一致的。
三. SHA
SHA(Secure Hash Algorithm,安全散列算法),数字签名等密码学应用中重要的工具,被广泛地应用于电子商务等信息安全领域。虽然,SHA与MD5通过碰撞法都被破解了, 但是SHA仍然是公认的安全加密算法,较之MD5更为安全。
四. HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个 标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证 等。
‘玖’ android加密算法有哪些
android中用的到加密:
Https编程 :应该是使用带安全的网络协议处理。除非你本地需要加密
2.数据签名:混淆代码和防二次打包的APK加密技术
3.对称加密:可以先将数据通过某种加密方式加密发送到服务器端,然后服务器端再解密 ,项目中除了登陆,支付等接口采用rsa非对称加密,之外的采用aes对称加密
4.非对称加密====支付宝
数字摘要是指通过算法将长数据变为短数据,通常用来标识数据的唯一性,是否被修改,常用的加密算法有md5和sha1两种,如Android的App签名也是用的这两种算法。
由于以上两种生成数字摘要的算法都是不可逆的,对于可逆的加密算法中,按照密钥的数量和加密规则一半分为对称加密和非对称加密两类:
对称加密:
密钥可以自己指定,只有一把密钥,如果密钥泄漏数据就会暴漏;
常用的对称加密算法有DES和AES两种;
特点是加密速度快,但是缺点是安全性低,因为只要密钥暴漏,数据就可以被解密。
非对称加密的特点:
常见的非对称加密算法是RSA;
他有两把密钥,且是由程序生成的,不能自己指定;
特点是加密速度比较慢,但是安全性比较高;
加密和解密的规则是:公钥加密只能私钥解密,私钥加密只能公钥解密;
‘拾’ android-如何加密所有的布局文件
Android 工程里面 xml文件是不能加密的 你看到别人的apk 布局文件加密,其实是因为你直接用解压缩文件看到的文件是被编译过的,直接打开是看不到的,需要使用反编译工具,这样你就可以看到别人的布局啦!