OC与JAVA通用的AES加密解密

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

最近项目中用到AES加密,但在网上找了很多的库都是OC与JAVA加密后不能项目解密,因为我们的服务器是用java写的,所以不能通用对于做iOS的就是个大麻烦,Android就比较悠哉用java写所以没什么事。不过,在把度娘全身搜遍后,还是让我找到了这个库,出处记不清了,之前找了好多好多的库。下面记录下使用方法。

例子:http://pan.baidu.com/s/1dDktRPn

OC调用方法:

[objc]  view plain copy print ?
  1. //  
  2. //  ViewController.m  
  3. //  AESTest  
  4. //  
  5. //  Created by 杜甲 on 14-9-22.  
  6. //  Copyright (c) 2014年 杜甲. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10. #include "NSData+AES256.h"  
  11.   
  12. @interface ViewController ()  
  13.   
  14. @end  
  15.   
  16. @implementation ViewController  
  17.   
  18. - (void)viewDidLoad  
  19. {  
  20.     [super viewDidLoad];  
  21.     // Do any additional setup after loading the view, typically from a nib.  
  22.       
  23.     NSString* message = @"神奇的AES";  
  24.       
  25.     NSString* str = [NSData AES256EncryptWithPlainText:message];  
  26.     NSString* res = [NSData AES256DecryptWithCiphertext:str];  
  27.     NSLog(@"%@",str);  
  28.     NSLog(@"%@",res);  
  29.   
  30. }  
  31.   
  32. - (void)didReceiveMemoryWarning  
  33. {  
  34.     [super didReceiveMemoryWarning];  
  35.     // Dispose of any resources that can be recreated.  
  36. }  
  37.   
  38. @end  


java调用方法:

[java]  view plain copy print ?
  1. package com.test.aesforandroid;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.util.Log;  
  6. import android.view.Menu;  
  7.   
  8. public class MainActivity extends Activity {  
  9.   
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.activity_main);  
  14.         AES mAes = new AES();  
  15.       
  16.         String mString = "神奇的AES";  
  17.         byte[] mBytes = null;  
  18.           
  19.           
  20.         try {  
  21.             mBytes = mString.getBytes("UTF8");  
  22.               
  23.               
  24.               
  25.         } catch (Exception e) {  
  26.             // TODO: handle exception  
  27.         }  
  28.         String enString = mAes.encrypt(mBytes);  
  29.         Log.i("aes123", enString);  
  30.         String deString = mAes.decrypt(enString);  
  31.         Log.i("aes123", deString);  
  32.     }  
  33.   
  34.     @Override  
  35.     public boolean onCreateOptionsMenu(Menu menu) {  
  36.         // Inflate the menu; this adds items to the action bar if it is present.  
  37.         getMenuInflater().inflate(R.menu.main, menu);  
  38.         return true;  
  39.     }  
  40.   
  41. }  

原文地址:http://blog.csdn.net/qqmcy/article/details/39483075
SSM项目数据库密码加密实践:基于Druid连接池的RSA方案 Java企业级应用开发中,数据库连接池是管理数据库连接、提升性能的核心组件。其配置信息,尤其是数据库密码的安全性,直接关系到整个应用的数据安全。非对称加密技术,如RSA,通过公钥加密、私钥解密的机制,为敏感信息的存储提供了高安全性的解决方案。该技术价值在于实现了配置文件中密码的密文存储,有效防止因代码泄露或配置暴露导致的数据库安全风险。在典型的SSM(Spring + Spring MVC + MyBatis)架构项目中,整合Druid连接池并利用其内置的ConfigFilter,可以无缝实现数据库密码的 阅读详情

相关推荐

iOS AES加密解密

iOS AES128加密解密代码完美和硬件适配 和蓝牙底层可以互通

关于AES256算法java加密,ios端解密出现无法解密问题的解决方案

原贴地址:http://my.oschina.net/nicsun/blog/95632   我想关于AES算法大家应该都已经了解了,我就不多介绍了。这是本人第一次写技术博文,如果有不对之处欢迎大家指正,共同讨论,一起学习!       之前在项目上用到AES256加密解密算法,刚开始在java加密解密都没有问题,在iOS端加密解密也没有问题。但是奇怪的是在java加密后的文件在i

pjk1129专栏 1万+

QCAESTest:用oc写的AES加密,代码中有详细的解释

QCAESTest 用oc写的AES加密,代码中有详细的解释

iOS JAVA互通AES解密实现

iOS JAVA互通AES解密实现

booyoung的博客 1773

iOS AES128加解密

最近有个项目用过AES128 的加解密,搜了不少资料,最后封装了一个公共方法,分享一下。代码如下一:.h文件#import <Foundation/Foundation.h>@interface FSAES128 : NSObject/** * 加密 * * @param string 需要加密的string * * @return 加密后的字符串 */ + (NSString *

TechAlleyBoy的博客 1万+

3.通过AES加密实例(基于c和oc)进一步了解指针

/*    AES加密解密中用到的指针知识——ios,看(1)、(2)、(3)、(4)、(5) */NSData * cipherOperation(NSData *contentData, NSData *keyData, CCOperation operation) {       /*         void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类...

当白的技术小窝 324

java aes128cbc_AES-128-CBC Base64加密——OC,Java,Golang联调

AES-128-CBC这里首先说说AES加密原理AES加密算法采用分组密码体制,每个分组数据的长度为128位16个字节,密钥长度可以是128位16个字节、192位或256位,一共有四种加密模式(ECB、CBC、CFB、OFB),我们通常采用需要初始向量IV的CBC模式,初始向量的长度规定是128位16个字节。另外就是Padding,这里面有大坑。。。。先说一下Padding的三种模式PKCS5、P...

weixin_42120550的博客 848

aes 128 cbc java_AES-128-CBC Base64加密——OC,Java,Golang联调

AES-128-CBC这里首先说说AES加密原理AES加密算法采用分组密码体制,每个分组数据的长度为128位16个字节,密钥长度可以是128位16个字节、192位或256位,一共有四种加密模式(ECB、CBC、CFB、OFB),我们通常采用需要初始向量IV的CBC模式,初始向量的长度规定是128位16个字节。另外就是Padding,这里面有大坑。。。。先说一下Padding的三种模式PKCS5、P...

weixin_26997697的博客 887

VXXEncryption-各种平台加密解密算法汇总,支持多种语言java,oc,c(正在更新...)

VXXEncryption,java加密算法,ios加密算法,后台加密算法,解密解密,多平台加密算法,常见加密算法,加密算法第三方框架

Volitation小星 3067

AES加密解密|及Base64的使用

AES解密算法,使用Base64做转码以及辅助加密: package com.wintv.common; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import sun.misc.BASE64Decod

蚁人日记 1512

关于AES加密(下)

上期提供了JavaAES加密,因为在使用时,一般Java作为服务器或者终端,可能涉及到ios作为终端,至少我遇到的场景是这样的,所以贴上IOS端的AES加密。首先我下面的代码是基于NSData的Category;上代码吧: NSData+AES256.h #import #import #import @interface NSData (AES256) + (NSData *)AES

码农 2940

OC AES 128位解密

+ (NSData *)AES128operation:(CCOperation)operation data:(NSData *)data key:(NSString *)key iv:(NSString *)iv { char keyPtr[kCCKeySizeAES128 + 1]; //kCCKeySizeAES128是加密位数 可以替换成256位的 bzero(keyPtr, sizeof(keyPtr)); [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding]; // IV char ivPtr[kCCBlockSizeAES128 + 1]; bzero(ivPtr, sizeof(ivPtr)); [iv getCString:ivPtr maxLength:sizeof(ivPtr) encoding:NSUTF8StringEncoding]; size_t bufferSize = [data length] + kCCBlockSizeAES128; void *buffer = malloc(bufferSize); size_t numBytesEncrypted = 0; // 设置加密参数 /** 这里设置的参数ios默认为CBC加密方式,如果需要其他加密方式如ECB,在kCCOptionPKCS7Padding这个参数后边加上kCCOptionECBMode,即kCCOptionPKCS7Padding | kCCOptionECBMode,但是记得修改上边的偏移量,因为只有CBC模式有偏移量之说 */ CCCryptorStatus cryptorStatus = CCCrypt(operation, kCCAlgorithmAES128, kCCOptionPKCS7Padding, keyPtr, kCCKeySizeAES128, ivPtr, [data bytes], [data length], buffer, bufferSize, &numBytesEncrypted;); if(cryptorStatus == kCCSuccess) { return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted]; } else { NSLog(@"AES operation failed"); } free(buffer); return nil; }

加密解密签名的一些工作记录

还有非对称加密算法RSA,加密速度慢,一般配合对称加密使用,用于加密对称加密的密钥,有很多版本,本次使用SHA256算法。首先加密算法分为对称加密和非对称加密。本次开发接触到对称加密算法AES加密速度快,一般对大量数据加密使用该算法。网传 Java 和dotnet 的 RSA密钥需要转换,需要引入OC.Core.Crypto 包。

.net小猿的专栏 494

iOS一行代码进行RSA、DES 、AES、MD5加密解密

本文为投稿文章,作者:Flying_Einstein(简书) 加密的Demo,欢迎下载 JAVA端的加密解密,读者可以看我同事的这篇文章:http://www.jianshu.com/p/98569e81cc0b 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,服务器也会返回数据,服务器是用Java开发的,客户端要同时支持多平台(Android、iOS),在处理iO

MinggeQingchun的博客 2068

30余种加密编码进制&Web&数据库&系统&代码

用MD5解密不出来,要么就是密码的确复杂,要么大部分情况是并没有采用单纯的MD5可能还会涉及到salt或者其他的加密方式加密算法那么你就根据当前能不能掌握当前网站应用的是什么名字,然后通过这个网站应用名字去搜索其加密形式然后结合这些资料判断这段密文的加密方式

2302_81414688的博客 2046

OC AES解密

@interface LanAES : NSObject +(NSData *)AES256ParmEncryptWithKey:(NSString *)key Encrypttext:(NSData *)text; //加密 +(NSData *)AES256ParmDecryptWithKey:(NSString *)key Decrypttext:(NSData *)text; //解密 +(NSString *) aes256_encrypt:(NSString *)key Encryp.

sgallon88的博客 567

OC Java兼容AES加密方式

问题 最近公司写个项目,遇到的问题,在此记录一下。后端和安卓端用的都是java加密过程很顺利,iOS端AES加密就没那么顺利,我加解密后的值和后端不一致,导致无法正确解密。我一度认为是我的代码出现了问题,后来和后端一起调试,发现只有AES/CBC这种加密模式和java兼容的,下面贴出来具体代码:(已验证可放心使用) 加密 //(key和iv向量这里是16位的) 这里是CBC加密模式,安全性更高 + (NSString *)encryptAES128CBCData:(NSData *)data key:(

不怕梦想跌倒,就怕没有梦想 645

AES加密oc实现)

AES加密oc实现) NSData+Encryption.h 文件: #import <Foundation/Foundation.h> #import <CommonCrypto/CommonCryptor.h> @interface NSData(Encryption) - (NSData *)AES256EncryptWithKey:(NSStr...

depaoweng2915的博客 566
上一篇: iOS最新真机调试证书-图文详解
下一篇: 热水熏一熏,眼睛水汪汪
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值