aes c android ios,AES加密在iOS和Android中产生不同的结果
尝试使用AES128算法加密样本数据,在
Android和iOS中使用CBC和PKCS7填充,但结果不同:(
Android代码:
private static final byte[] KEY = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10};
int srcBuffSiz = 1024;
byte[] srcBuff = new byte[srcBuffSiz];
Arrays.fill(srcBuff, (byte)0x01);
SecretKeySpec skeySpec = new SecretKeySpec(KEY, "AES");
Cipher ecipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
ecipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] dstBuff = ecipher.doFinal(srcBuff);
int bytesEncrypted = dstBuff.length;
iOS代码:
// Source buffer
size_t srcBuffSiz = 1024;
unsigned char* srcBuff = new unsigned char[srcBuffSiz];
memset(srcBuff, 0x01, srcBuffSiz);
// Destination buffer
size_t dstBuffSiz = srcBuffSiz + 128;
unsigned char* dstBuff = new unsigned char[dstBuffSiz];
memset(dstBuff, 0x00, dstBuffSiz);
unsigned char keyPtr[kCCKeySizeAES128] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10};
size_t bytesEncrypted = 0;
CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,
keyPtr, kCCKeySizeAES128,
NULL /* initialization vector (optional) */,
srcBuff, srcBuffSiz, /* input */
dstBuff, dstBuffSiz, /* output */
&bytesEncrypted);
因此,在这两种情况下,我都试图使用预定义的样本密钥加密样本1024字节缓冲区(通常填充0x01值).
iOS中第一个和最后6个字节的加密缓冲区:
ED CC 64 27 A8 99 ... 0C 44 9F EC 34 FC
Android中第一个和最后一个6字节的加密缓冲区:
AE 65 A9 F7 7F 0E ... 1F BD AE 8B 85 ED
任何的想法?
如果我将Cipher.getInstance(“AES / CBC / PKCS7Padding”)替换为Cipher.getInstance(“AES”),那么加密缓冲区的前几个字节将是相同的,但是从第17个字节开始……
iOS版:
ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F E7 DD A7 35 F2 50 5C 49 47 CC 3B 2F AB D1 61 05
安卓:
ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F E7 DD A7 ED CC 64 27 A8 99 DA 83 D5 4A B0 03 0F
aes c android ios,AES加密在iOS和Android中产生不同的结果相关推荐
- 【iOS app加密】iOS app之游戏加密防破解
[iOS app加密]iOS app之游戏加密防破解.iOS app游戏类应用有一个很泛滥但被视为鸡肋的问题,那就是iOS app被破解的问题.因为国内大多数游戏靠内购和广告盈利,游戏安装包也只是在早 ...
- android程序如何加密软件,如何在Android手机上隐藏(加密)文件夹(软件)
今天,我将向您展示如何在Android手机上隐藏(加密)文件夹(软件)以及如何在Android手机上隐藏(加密)文件夹(软件),以便您轻松解决问题. 在使用Android手机的过程中,出于各种原因,我 ...
- android 中如何用aes算法加密解密zip文件,android中AES加解密的使用方法
今天在android项目中使用AES对数据进行加解密,遇到了很多问题,网上也找了很多资料,也不行.不过最后还是让我给搞出来了,这里把这个记录下来,不要让别人走我的弯路,因为网上绝大多数的例子都是行不通 ...
- python混淆加密ios代码_用AES(MODE_CBC/NoPadding)解密用Python加密的iOS文件
我从Python中的服务器接收到一个以这种方式加密的文件:import os from Crypto.Cipher import AES from Crypto import Random def p ...
- Android采用AES+RSA的加密机制对http请求进行加密
前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fiddler抓到了明文内容 ...
- Ubuntu环境下,使用clion编译器,使用开源opensll的对称AES算法对于文件进行加密,C++代码
前提准备条件 需要安装openssl 需要安装openssl-dev 需要配置CMakeLists.txt文件 集体内容可以参考我提供的相关参考链接 AES_file.h #include <o ...
- ios java 通信_AES加密解密 -- iOS、Java之间的互相通信
简介:AES是一种对称加密方式,旨在取代DES成为广泛使用的标准.虽然语言不同,但是AES的算法是相同的. 关于AES的各种参数请参考下面文章(一定要认真阅读,不然就没办法按照自己的想法进行加密解密) ...
- 谈谈iOS 的加密技术
ios常用加密方式 AES加密 aes(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范.它被预期能成为人们公认的加密包括金融.电信和 ...
- android ios 对比 组件_iOS系统和Android系统全面对比
摘 要 iOS和Android占据当今智能移动终端市场的半壁江山,结合<嵌入式系统>学习的软硬件协同开发等理念,从硬件.软件.用户三个角度进行iOS与Android的比较.其中,硬件选择 ...
- android xml转换成svg,如何将Android xml布局转换为png / svg以在iOS版本中使用
我这里有一个 Android布局xml文件: android:id="@+id/locationMarker" android:layout_width="wrap_co ...
最新文章
- 点云配准的端到端深度神经网络:ICCV2019论文解读
- ML基石_56_TheoryOfGeneralization
- c语言与硬件连接案例,实际LED硬件连接
- python 类装饰器和函数装饰器区别_python进阶之装饰器之4在类中定义装饰器,将装饰器定义为类,两者的区别与联系...
- 二维数组:随机生产,遍历,判断两个数组一维二维长度,和内容是否一致
- 《C++ Primer 5th》笔记(2 / 19):变量和基本类型
- java 泛型 `<E extends Enum<E>>`
- 非刚性配准(Non-rigid ICP )
- C++ 对象的内存布局【转】
- html根据域名跳转不同页面,根据邮箱的域名跳转到相应的登录页面的代码
- Redis之单机数据库的实现
- 通信技术发展的自然辩证法
- 长江下游水位退至23年来最低点
- linux各种桌面系统图片,四大Linux图形界面赏析:KDE、Gnome、Xfce、LXDE
- 全息投影是计算机技术吗,全息投影技术在使用过程中要注意哪些问题?
- 链游界巅峰巨作Hegemony Ⅱ 仿真元宇宙游戏王国震撼问世
- java注解约束参数为固定值_Java学习 使用注解将参数的值限定
- 感动,我终于学会了用Java对数组求和
- chrome浏览器当鼠标碰到超链接的时候会窗口会抖动
- Robocup2D入门笔记(1)——概述
热门文章
- python字典格式_python – 格式self,这是一个字典
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建13 - 空间滤波 - 线性位置不变退化 - 退化函数估计、运动模糊函数
- Linux软件安装——安装软件的命令
- filter-mutate过滤插件
- mysql那些事(6) WHERE条件 字符串的引号
- 浅谈Junit4和TestNG中的参数化测试
- JIRA-6.3.6安装与破解
- 转: vim 的编辑格式设置
- Android事件总线
- Spring Bean Scope 有状态的Bean 无状态的Bean