Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
44 changes: 44 additions & 0 deletions J2EE/encryption.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
- 对称加密,加密方和解密方持有相同的私钥,应用场景为一般情况下的一对一加密
- 非对称加密,加密方持有公钥,对消息进行加密,解密方持有私钥,只有该私钥可以解密小心,应用场景多为一对多的,以防止对称加密时解密方持有相同密钥而引发的密钥泄漏风险

AES 和 DES 都为对称加密

#### SHA256
```java
String contentNeedToBeEncrypted = "contentNeedToBeEncrypted";
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] sign = md.digest(contentNeedToBeEncrypted.getBytes());

//转换成16进制
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < sign.length; i++) {
String hex = Integer.toHexString(0xff & sign[i]);
if (hex.length() == 1)
hexString.append('0');
hexString.append(hex);
}
```

#### AES 对称加密
```java
String contentNeedToBeEncrypted = "contentNeedToBeEncrypted";
String key = "aabbccddeeffgghh";//private key
String iv = "aabbccddeeffgghh";//偏移量,可以设置成和私钥为同一个值
Key keySpec = new SecretKeySpec(key.getBytes(), "AES");

//加密
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
byte [] b = cipher.doFinal(params.getBytes());
String result = Base64.encodeBytes(b);

//解密
String contentNeedToBeDecrypted = "contentNeedToBeDecrypted";
Cipher cipher1 = Cipher.getInstance("AES/CBC/PKCS5PADDING");
IvParameterSpec ivSpec1 = new IvParameterSpec(iv.getBytes());
byte [] bytes = Base64.decode(contentNeedToBeDecrypted);
cipher1.init(Cipher.DECRYPT_MODE, keySpec, ivSpec1);
byte [] retB = cipher1.doFinal(bytes);
System.out.println(new String(retB, "utf-8"));
```
13 changes: 13 additions & 0 deletions OTHER/JavaScript.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#### 需要学习的生词
- REFUSE
- GRID
- COOL
- ATTRACT
- TOWER
- LOYAL
- LABOR
- CELERY
- WORD
- PURPOSE
- OVAL
- APOLOGY
28 changes: 15 additions & 13 deletions OTHER/Subledger.md
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
### 会计知识
>资产 + 成本 = 负债 + 收入
- 资产和成本为借方,负债和收入为贷方
- 借方增加记 借,贷方增加记 贷
- 借方减少记 贷,贷方减少记 借
- 借方增加记 借(D),贷方增加记 贷(C)
- 借方减少记 贷(C),贷方减少记 借(D)

#### Example:
公司A有一产品P,卖出价格100元,需向第三方B支付90元成本,支付渠道即时收取2元手续费。当用户a购买产品P时记账如下:

- 用户付款成功:
公司A资产账号增加98元
第三方B结算账号增加90元
手续费成本账号增加2元
收入账号增加10元
公司A有一产品P,卖出价格100元,需向第三方B支付90元成本,支付渠道即时收取2元手续费。当用户a购买产品P时记账如下:
   - 用户付款成功:
公司A资产账号增加98元
第三方B结算账号增加90元
手续费成本账号增加2元
收入账号增加10元
> 公司A资产账号(98元 借) + 手续费成本账号(2元 借) = 第三方B结算账号(90元 贷) + 收入账号 (10元 贷)

   - 第三方体现:
公司A资产账号减少90元
第三方B结算账号减少90元

   第三方结算时记账如下:
   - 第三方结算体现:
公司A资产账号减少90元
第三方B结算账号减少90元
> 公司A资产账号(90元 贷) = 第三方B结算账号(90元 借)

PS: 所有账户均为记账账户,在公司角度建立。记账时,一条记账凭证,为同一时间发生所有记账账户变动,所以一条凭证关联所有账户变动,便于结算等。
1 change: 1 addition & 0 deletions TOOLS/git.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#### 深入理解 git
1 change: 1 addition & 0 deletions TOOLS/maven.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#### Learn maven