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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/270871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树形DP+树状数组 HDU 5877 Weak Pair

1 //树形DP树状数组 HDU 5877 Weak Pair2 // 思路&#xff1a;用树状数组每次加k/a[i]&#xff0c;每个节点ansSum(a[i]) 表示每次加大于等于a[i]的值3 // 这道题要离散化4 5 #include <bits/stdc.h>6 using namespace std;7 #define LL long long8 typedef pair<int…

mysql一直拒绝登录_mysql 登录错误:1045 (28000)访问被拒问题

关键条目&#xff1a;ERROR 1045(28000): Access deniedforuserrootlocalhost(using password: YES)这个错误1045(28000)的本质其实就是访问被拒绝&#xff0c;问题原因也很简单&#xff0c;就是用户密码不适用&#xff0c;也可以理解为用户或密码错误。Access deniedforuserro…

SQLServer书写规范梳理

今天给大家分享SQLServer书写规范笔记&#xff0c;希望对大家能有所帮助!1、在名称中仅使用字母、数字和下划线要在名称中仅使用字母、数字和下划线&#xff0c;主要是因为这些字符可以被方便的移植到编程语言中。在应用程序的数据库和编程语言中能够使用相同的属性字段名称&am…

android 屏幕旋转不重新加载,Android webview旋转屏幕导致页面重新加载问题解决办法...

Android webview旋转屏幕导致页面重新加载问题解决办法1. 在create时候加个状态判断protected void onCreate(Bundle savedInstanceState){...if (savedInstanceState null){mWebView.loadUrl("your_url");}...}2. 重载保存状态的函数&#xff1a;Overrideprotected…

visio调整形状位置_VISIO绘图技巧—三相桥式全控整流电路绘制

前些天有网友留言询问如何画三相桥式全控整流电路&#xff0c;一直没时间回复。今天得闲在家&#xff0c;给大家介绍一下如何来画。上图是一个三相桥式全控整流电路原理图&#xff0c;大部分图形元件在VISIO自带的图形库中都能找到&#xff0c;下面来看看如何找出我们需要的绘图…

计算机组成原理——关于数据对齐存储

计算机组成原理——关于数据对齐存储 1. 综述 博客&#xff1a;http://blog.csdn.net/cyxcw1/article/details/9080519(C/C数据边界对齐的注意事项) 对齐&#xff1a;变量的起始地址为其大小的整数倍。如short型占两个字节&#xff0c;其起始地址就要从偶数地址开始。 对齐可以…

电脑术语科普:什么是“显卡交火”?

有时候看到别人在讨论显卡交火的话题&#xff0c;相信大家对显卡交火这个术语了解得也比较少&#xff0c;那么它是什么意思呢? 显卡交火简单的说就是&#xff1a;让两块或者多块显卡在一台机子上协同工作&#xff0c;相比于使用一张显卡图形性能有所提升。 目前主流显卡交火有…

Mac查看本机ip地址

Mac查看本机ip地址 ifconfig | grep "inet" 箭头处为ip地址

python3.4 pip安装_python3.4的pycurl pip安装

我正在安装pycurl for python3.4如果我运行“pip install pycurl”&#xff0c;我有&#xff1a;Downloading/unpacking pycurlRunning setup.py (path:C:\Users\kkw\AppData\Local\Temp\pip_build_kkw\pycurl\setup.py) egg_info for package pycurlPlease specify --curl-dir…

html页面整体变灰,css实现网站整体变灰(兼容火狐)

天下兴亡&#xff0c;匹夫有责。有时候我们可能需要将网站整体变灰&#xff0c;实现方法也很简单。将下面代码加入到 wordpress 主题目录下的 style.css 文件中即可&#xff1a;/* 网站变灰代码 */html{ filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filte…

SQL Azure与SQL Server两者的对比介绍,看完你就懂了!

今天给大家SQL Azure与SQL Server两者的对比介绍&#xff0c;看完你就懂了&#xff01;1、SQL Server介绍SQL Server数据库服务方式是安装在客户提供的服务器内。客户负责硬件、、软件安装、安全性、数据库备份、灾难恢复等相关的运维工作。需要较高的人为运维成本。2、SQL Azu…

如何用HTML语言设计进度条,html5代码如何实现进度条功能?(示例)

本篇文章主要介绍html5代码如何实现进度条功能&#xff0c;希望对大家有所帮助。html5代码实现进度条功能具体代码示例如下&#xff1a;/*实现进度条的功能*/下载进度&#xff1a;/*js代码*/var pgdocument.getElementById(pg);setInterval(function(e){if(pg.value!100) pg.va…

Flink是什么

一&#xff1a;Flink是什么

sublime插件 TortioseSVN

TortioseSVN 可以安装在sublime中&#xff0c;实现svn文件的增加、删除、更新、提交等功能&#xff08;TortioseSVN用在window系统中&#xff0c;linux安装svn&#xff09; 安装&#xff1a; 首先在sublime中搜索安装TortioseSVN&#xff0c;&#xff08;前提是安装了package c…

python脚本 游戏赚金币兑换钱_一种王者荣耀刷金币方法(python脚本)

所用工具环境python3.6.5 和 支持自动鼠标键盘点击等编程的pyautogui功能包windows PC&#xff0c;安卓模拟器bluestacks&#xff0c;安装王者荣耀基本思路王者荣耀有闯关任务模式可以获得金币&#xff0c;任务两三分钟一般就可以完成&#xff0c;支持自动模式&#xff0c;一次…

SQL Server数据库架构与对象相关知识笔记

1、数据库架构简介数据库架构是从SQL Server2005版本之后引入的概念。数据库架构独立于创建它的数据厍用户而存在&#xff0c;每个对象都属于一个数据库架构&#xff08;对象包括表、视图、存储过程、函数、触发器等&#xff09;2、 数据库、架构和数据库对象数据库架构是一个独…

html ajax 数据传送,HTML AJAX 简单数据JS

ajax请求var xmlhttp;var data;//Mozilla ,chmore浏览器(将XMLHttpRequest对象作为本地浏览器对象来创建)if(window.XMLHttpRequest){ //Mozilla 浏览器xmlhttp new XMLHttpRequest();}else if(window.ActiveXObject) { //IE浏览器//IE浏览器(将XMLHttpRequest对象作为ActiveX…

转换

1024字节1K 1024*10241M 1024K1M 1024M1G 字

蒙提霍尔悖论(三门问题)终极分析(补充)附完整源码

上一篇文章分析了经典的蒙提霍尔问题&#xff0c;最后的结论是更换选择后有2/3的机会中奖。蒙提霍尔问题到此已经完结&#xff0c;但事实却并非如此。 在蒙提霍尔问题中&#xff0c;主持人事先知道汽车在哪个门后面&#xff0c;并且他一定会选择没有汽车的那扇门。如果我们稍稍…

超融合和服务器关系_超融合与传统服务器区别

超融合与传统服务器的区别1.1概述虽然超融合架构以其为用户带来的巨大价值&#xff0c;已经被越来越广泛地接受&#xff0c;但市场上对超融合仍然有诸多不清晰的概念和疑问&#xff0c;本系列文章将力求对这些概念进行逐一解释。本篇解释大家经常问到和混淆的一个概念&#xff…