<commit_before># crypto
对Java平台密钥生成、加解密等封装的类库

### 分析
直接使用Java提供的API需要处理如下类之间的关系

![Java API类图](http://jisonami.org/images/Java_Security/Crypto/JavaCryptoClassDiagram.png)

使用crypto类库则只需要处理如下类之间的关系

![crypto API类图](http://jisonami.org/images/Java_Security/Crypto/CryptoClassDiagram.png)

### SymmetricCryptography实现对称密钥算法加解密

#### 默认使用AES算法、128位密钥长度

```java
SymmetricCryptography symmetricCryptography = new SymmetricCryptography();
String key = symmetricCryptography.encodeKey(symmetricCryptography.initKey());
System.out.println("AES密钥：" + key);
String encryptData = symmetricCryptography.encrypt(data, symmetricCryptography.decodeKey(key));
System.out.println("加密前数据：" + data);
System.out.println("加密后数据：" + encryptData);
String decryptData = symmetricCryptography.decrypt(encryptData, symmetricCryptography.decodeKey(key));
System.out.println("解密后数据：" + decryptData);
```



### NonSymmetricCryptography实现非对称密钥算法加解密


### KeyAgreementCryptography实现密钥协商算法加解密

更详细的API请参考[crypto的JavaDoc文档](/doc)<commit_msg>edit readme<commit_after># crypto
对Java平台密钥生成、加解密等封装的类库

### 分析
直接使用Java提供的API需要处理如下类之间的关系

![Java API类图](http://jisonami.org/images/Java_Security/Crypto/JavaCryptoClassDiagram.png)

使用crypto类库则只需要处理如下类之间的关系

![crypto API类图](http://jisonami.org/images/Java_Security/Crypto/CryptoClassDiagram.png)

### SymmetricCryptography实现对称密钥算法加解密

#### 默认使用AES算法、128位密钥长度

```java
SymmetricCryptography symmetricCryptography = new SymmetricCryptography();
String key = symmetricCryptography.encodeKey(symmetricCryptography.initKey());
System.out.println("AES密钥：" + key);
String encryptData = symmetricCryptography.encrypt(data, symmetricCryptography.decodeKey(key));
System.out.println("加密前数据：" + data);
System.out.println("加密后数据：" + encryptData);
String decryptData = symmetricCryptography.decrypt(encryptData, symmetricCryptography.decodeKey(key));
System.out.println("解密后数据：" + decryptData);
```



### NonSymmetricCryptography实现非对称密钥算法加解密


### KeyAgreementCryptography实现密钥协商算法加解密

更详细的API请参考[crypto的JavaDoc文档](http://jisonami.org/images/Java_Security/Crypto/doc/)
{'fraction_non_alphanumeric': 0.12681510164569215, 'fraction_numerical': 0.002904162633107454, 'mean_word_length': 9.283582089552239, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7498896', 'n_tokens_mistral': 859, 'n_tokens_neox': 885, 'n_words': 78}