Coder Social home page Coder Social logo

aescipher-ios's Introduction

AESCipher-iOS

AES Encryption For Objective-C

Using this code for iOS and AESCipher-Java for Android and Java back-end lets you encrypt and decrypt with AES accurately. Coding with C style is just for security.

Encryption:

// For String 
NSString * aesEncryptString(NSString *content, NSString *key);
// For Data
NSData * aesEncryptData(NSData *data, NSData *key);

Decryption:

// For String 
NSString * aesDecryptString(NSString *content, NSString *key);
// For Data
NSData * aesDecryptData(NSData *data, NSData *key);

Attention , this repo is based on AES-128 so you should use a 16-byte-key . If you want to use AES-256 , change kKeySize to kCCKeySizeAES256 , and use 32 bytes' KEY.

Additionally you can modify the kInitVector with another 16 bytes string in line 14 of AESCipher.m , but you should make sure to keep it the same with IV_STRING in line 23 of AESCipher-Java.


用 Objective-C 实现的 AES 加密。

AESCipher-Java 一并使用能达到 在iOS、Android、Java后台产生相同密文、正确解密成明文的目的。用 C 的风格来编写是为了提高些许安全性。

加密方法:

// For String 
NSString * aesEncryptString(NSString *content, NSString *key);
// For Data
NSData * aesEncryptData(NSData *data, NSData *key);

解密方法:

// For String 
NSString * aesDecryptString(NSString *content, NSString *key);
// For Data
NSData * aesDecryptData(NSData *data, NSData *key);

注意 ,由于这个库是基于 AES-128 的,因此请确保传入的 KEY 大小为 16 字节。如果要使用 AES-256 ,修改 kKeySizekCCKeySizeAES256,然后提供 32 字节的 KEY 就可以了。

另外你也可以将 AESCipher.m 第 14 行中的 kInitVector 修改为其他 16 字节的字符串,但请确保其与 AESCipher-Java 第 23 行处的 IV_STRING 保持一致。

另附源码详解一份:

AES加密 - iOS与Java的同步实现

aescipher-ios's People

Contributors

welkinxie avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.