- 浏览: 1007455 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (675)
- ios (214)
- android-course (5)
- unity3d (7)
- cocos2d (36)
- html5 (3)
- game (5)
- android (42)
- java (57)
- php (12)
- 创业 (10)
- SEO (3)
- 架构 (2)
- 数据库 (3)
- 产品设计 (9)
- 操作系统 (10)
- Web前端 (11)
- 其他 (50)
- GAE (1)
- mac os (8)
- Open Source (2)
- 序列号 (10)
- C (2)
- database (2)
- 算法 (6)
- 设计模式 (1)
- photoshop (1)
- 3dmax (1)
- maya (1)
- opengl (3)
- 游戏设计 (1)
- 趋势 (1)
- cocos2d-x (4)
- shell (3)
- c++ (30)
- lua (5)
- flash (1)
- spring (3)
- mysql (4)
- Git (6)
- xmpp (1)
- cocos2dx (14)
- mac (2)
- 编程规范 (2)
- windows (1)
- linux (5)
- coocs2dx (1)
- ubuntu (2)
- aws (1)
- OPENGLES (1)
- 原画 (1)
最新评论
-
jlees:
Best mobile app testing tool pc ...
iOS + XCode 4 + GHUnit = Mobile TDD+Continuous testing -
ipanda:
楼主,能否给一个Micro CloudFoundry的虚机或者 ...
Cloud Foundry使用及开发向导 -
love_zongming:
谢谢分享。。
visio2007序列号 -
雨花台舞水:
你这才是枪文把
套在 360 黑匣子外面的黑盒子:你被技术型枪稿吓到了么? -
hugh.wang:
改天试试
Mac版魔兽争霸3 1.24e下载
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael之命名之,投稿高级加密标准的甄选流程(Rijdael的发音近于 “Rhine doll”)。 AES 加密过程是在一个4×4的字节矩阵上运作,这个矩阵又称为“体(state)”,其初值就是一个明文区块(矩阵中一个元素大小就是明文区块中的一个 Byte)。(Rijndael加密法因支援更大的区块,其矩阵行数可视情况增加)加密时,各轮AES加密循环(除最后一轮外)均包含4个步骤: 1. AddRoundKey — 矩阵中的每一个字节都与该次循环的子密钥(round key)做XOR运算;每个子密钥由密钥生成方案产生。 最后一个加密循环中省略MixColumns步骤,而以另一个AddRoundKey取代。
2. SubBytes — 透过一个非线性的替换函数,用查找表的方式把每个字节替换成对应的字节。
3. ShiftRows — 将矩阵中的每个横列进行循环式移位。
4. MixColumns — 为了充分混合矩阵中各个直行的操作。这个步骤使用线性转换来混合每行内的四个字节。import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class SimpleCrypto {
public static String encrypt(String seed, String cleartext) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
return toHex(result);
}
public static String decrypt(String seed, String encrypted) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] enc = toByte(encrypted);
byte[] result = decrypt(rawKey, enc);
return new String(result);
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static String toHex(String txt) {
return toHex(txt.getBytes());
}
public static String fromHex(String hex) {
return new String(toByte(hex));
}
public static byte[] toByte(String hexString) {
int len = hexString.length()/2;
byte[] result = new byte[len];
for (int i = 0; i < len; i++)
result[i] = Integer.valueOf(hexString.substring(2*i, 2*i+2), 16).bytue();
return result;
}
public static String toHex(byte[] buf) {
if (buf == null)
return "";
StringBuffer result = new StringBuffer(2*buf.length);
for (int i = 0; i < buf.length; i++) {
appendHex(result, buf[i]);
}
return result.toString();
}
private final static String HEX = "0123456789ABCDEF";
private static void appendHex(StringBuffer sb, byte b) {
sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f));
}
}
String encryptingCode = SimpleCrypto.encrypt(masterPassword,originalText);
解密:
String originalText = SimpleCrypto.decrypt(masterpassword, encryptingCode);
评论
发表评论
-
Android监听键盘是否弹出,以及获取软键盘的高度
2015-07-02 19:31 1455网上介绍过监听键盘是否弹出的方法,我自己也是尝试过,不是 ... -
linux安装android NDK
2015-04-20 19:14 1871Error:Execution failed for ta ... -
android studio 添加项目修改gradle2.2.3
2015-04-20 15:22 15671.build.gradle(Module:app) 去除对 ... -
Android.mk无需手动添加cpp文件(cocos2d-x 3.2正式版)
2014-09-11 14:41 995LOCAL_PATH := $(call my-dir) ... -
cocos2dx 在android中编译
2014-08-08 17:11 8021在全局环境变量中设置NDK_ROOT -
android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据
2014-08-07 16:54 2527为了实现这个功能可折腾了我好久,先上一份代码,经楼主验证是绝 ... -
用Gradle 构建你的android程序
2014-03-21 17:15 800前言 android gradle 的插 ... -
Hackborn的吐槽和Munn的剖析: Android graphics低性能背后的真像
2013-10-23 14:52 764Google+上有意思的讨论 ... -
mac 不识别 android samsung手机
2013-10-21 16:30 1841使用Mac开发Android时,有可能无法识别手机,可以通过 ... -
Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目!
2013-04-04 00:58 1165大家都知道Cocos2d-X是个多平台支持的游戏引擎,那么 ... -
让Java跟Javascript更加亲密
2013-04-02 22:30 1114在移动App开发中,为了快速迭代,通常都会使用Native+ ... -
技术文章收藏夹
2013-02-13 19:59 782COCOS2D-X跨ANDROID&IOS平台开发入 ... -
eclipse failed to create the java virtual machine 问题图文解析
2013-01-27 11:16 660解决方法: 1.问题现象 2.java虚拟机初始化失败 ... -
cocosd-android原来是个山寨货
2012-06-13 09:25 9501、技术团队无优势:Cocos2D-Android版本与iPh ... -
How Secure Are Query Strings Over HTTPS?
2012-03-09 12:29 1236A common question we hear is ... -
Android禁止横屏竖屏切换
2012-04-20 00:13 1669在AndroidManifest.xml的activity(需 ... -
Facebook还发布了Ringmark手机浏览器测试套件
2012-02-28 09:17 1060Facebook还发布了Ringmark手机浏览器测试套件 -
图解 Android 广播机制
2012-02-16 16:35 889从现实生活中理解广播机制 一听到广播我们第一感觉就会联 ... -
Handling Android 2.3 WebView's broken AddJavascriptInterface
2012-02-12 15:05 1430The Google Android team rele ... -
Error executing aapt解决
2012-02-11 23:31 4524安装完SDK和ADT时貌似出现些问题。 Description ...
相关推荐
开放源代码:Android系统采用开放源代码模式,允许开发者自由访问、修改和定制操作系统,这促进了技术的创新和发展,使得Android系统具有高度的灵活性和可定制性。 多任务处理:Android允许用户同时运行多个应用程序...
开放源代码:Android系统采用开放源代码模式,允许开发者自由访问、修改和定制操作系统,这促进了技术的创新和发展,使得Android系统具有高度的灵活性和可定制性。 多任务处理:Android允许用户同时运行多个应用程序...
资源包中的文件手册部分,详细记录了Android开发的核心知识点和常用技术。无论是初学者还是有一定经验的开发者,都能从中找到所需的学习资料。手册采用了简洁明了的排版方式,使得查阅更加方便快捷。同时,手册内容...
由于业务需求需要对接java接口,对方接口采用AES/ECB/PKCS5Padding加密技术,还经过,16进制转换,php端采用openssl加解密方式。调试可以访问http://tool.chacuo.net/cryptaes
基于Android智能终端的敏感数据保护技术的研究与实现,夏冰,马兆丰,提出了一种基于AES加密的文件保护和填充粉碎删除数据的Android敏感数据保护的新方法,该方法通过采用AES加密技术对用户选择的个人数��
本文研究了Android平台的应用设计开发以及常用的文件传输协议和数据加密技术。针对文件传输方案的设计实现,重点研究了AES加密算法和SSL安全协议。通过分析比较,根据本文件传输方案的特点,采用AES加密算法、SSL...
兼容Java,iOS,Android三端的AES-128-ECB加密算法,附三端Demo Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems公司于1995年5月正式发布。它的设计目标是“一次编写,到处运行(Write Once, Run ...
它使用AES 128位加密技术来保护数据安全,并且与UTF-8兼容元素兼容。 ====================== Gradle集成: 添加存储库依赖项: repositories { jcenter() maven { url ...
使用sqlite保存数据,所有账户密码使用AES加密后存储,保证数据安全。 功能: 1. 登录,用户管控。 2. 增、删、修改、查看用户保存数据 涉及android开发技术 1.activity切换 2.option menu/Context menu 3....
翻了下菜单看了有文件加密、文件解密、报文鉴别、编辑文件、删除文件等功能,加密有des、desede、aes三种算法,因为小编不了解加密解密这一块所以就不妄加评论技术细节了,了解这一块的朋友自己下载研究一下吧,默认...
至佳私密禁卫军是由上海至佳信息技术有限公司自主研发的一款应用于个人私密信息保护软件,采用了独创的磁盘动态加密技术和系统乱码路径技术使用户能快速实现对文件高强度的加密和深度隐藏,采用了杂合加密算法确保...
"AES": 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。...
坚果云提供最简单易用的免费云存储服务, 让您随时随地访问自己的文件. 支持windows, linux, mac osx, android, ios等所有平台....自动发现局域网内的设备,P2P智能传输,使用AES加密传输数据,无时无刻保护数据隐私
每个上传到坚果云的文件都被独有的分布式加密技术加密,并存储在多个不同的服务器上。文件可靠备份,安全级别堪比网银。 文件时光机 坚果云自动会记录文件修改的每个版本,任意时刻可将文件恢复到任意版本。...
1、HTTP通信过程传输加密,使用AES+RSA技术实现,确保密文传输,提高安全性 2、是同TCP协议与设备通信 4、语音助手模块 1、后端:使用SpringM
服务器端:技术NODE JS框架EXPRESS JS编程语言JavaScript和python数据交换格式REST API进行JSON使用的加密高级加密标准(AES)操作系统Linux Ubuntu编程IDE Sublime文本 数据库:技术MONGO DB – NoSQL版本:2.6.5 ...
使用了高级别的安全加密技术(AES),全方位保护您的数据。 对安全敏感的用户往往很在意应用访问手机的权限。星月金锁并无需访问手机的任何权限,除了备份数据需要读写SD卡,它不会联网,也不会访问手机上的任何隐私...
借助针对台式机,移动设备,物联网和嵌入式设备的构建,可在Android,iOS,macOS,tvOS,Linux和Windows上实现的便携式和跨平台,以及针对ARM32,ARM64,x86和x64的特定于处理器的构建。技术,SDK和代码...
硬件 SDK: 支持WIFI和MQTT连接、物模型响应、实时监测、定时上报监测数据、AES加密、NTP时间等 物模型管理: 属性 (设备状态和监测数据) ,功能(执行特定任务),事件(设备主动上报给云端) 其他功能:多租户、统计、...