คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.security.Key;
นำเข้า java.security.SecureRandom;
นำเข้า java.security.spec.AlgorithmParameterSpec;
นำเข้า javax.crypto.Cipher;
นำเข้า javax.crypto.SecretKeyFactory;
นำเข้า javax.crypto.spec.DESKeySpec;
นำเข้า javax.crypto.spec.IvParameterSpec;
นำเข้า org.apache.commons.logging.Log;
นำเข้า org.apache.commons.logging.LogFactory;
คลาสสาธารณะ Des
-
สตริงสุดท้ายแบบคงที่สาธารณะ ALGORITHM_DES = "DES/CBC/PKCS5Padding";
บันทึกบันทึกคงที่ส่วนตัว = LogFactory.getLog (Des.class);
-
* อัลกอริธึม DES, การเข้ารหัส
-
* @param สตริงข้อมูลที่จะเข้ารหัส
* @param key การเข้ารหัสคีย์ส่วนตัว ความยาวต้องไม่น้อยกว่า 8 บิต
* @return อาร์เรย์ไบต์ที่เข้ารหัส โดยทั่วไปจะใช้ร่วมกับการเข้ารหัส Base64
* @throws ข้อยกเว้น CryptException
-
การเข้ารหัสสตริงแบบคงที่สาธารณะ (คีย์สตริง, ข้อมูลสตริง) ส่งข้อยกเว้น
-
ส่งคืนการเข้ารหัส (คีย์ data.getBytes());
-
-
* อัลกอริธึม DES, การเข้ารหัส
-
* สตริงข้อมูล @param ที่จะเข้ารหัส
* @param key การเข้ารหัสคีย์ส่วนตัว ความยาวต้องไม่น้อยกว่า 8 บิต
* @return อาร์เรย์ไบต์ที่เข้ารหัส โดยทั่วไปจะใช้ร่วมกับการเข้ารหัส Base64
* @throws ข้อยกเว้น CryptException
-
การเข้ารหัสสตริงแบบคงที่สาธารณะ (คีย์สตริง, ข้อมูลไบต์ []) จะส่งข้อยกเว้น
-
พยายาม
-
DESKeySpec dks = DESKeySpec ใหม่(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//ความยาวของคีย์ต้องไม่น้อยกว่า 8 ไบต์
คีย์ SecretKey = keyFactory.generateSecret (dks);
การเข้ารหัส = Cipher.getInstance (ALGORITHM_DES);
IvParameterSpec iv = ใหม่ IvParameterSpec("********".getBytes());
อัลกอริทึมพารามิเตอร์พารามิเตอร์ paramSpec = iv;
cipher.init (Cipher.ENCRYPT_MODE, secretKey, paramSpec);
ไบต์ [] ไบต์ = cipher.doFinal (ข้อมูล);
กลับ Base64.encode (ไบต์);
} จับ (ยกเว้น e)
-
โยนข้อยกเว้นใหม่ (e);
-
-
-
* อัลกอริธึม DES, การถอดรหัส
-
* สตริงข้อมูล @param ที่จะถอดรหัส
* @param key ถอดรหัสคีย์ส่วนตัว ความยาวต้องไม่น้อยกว่า 8 บิต
* @return อาร์เรย์ไบต์ที่ถอดรหัสแล้ว
* @throws ข้อยกเว้นข้อยกเว้น
-
ไบต์สาธารณะคงที่ [] ถอดรหัส (คีย์สตริงข้อมูลไบต์ []) ส่งข้อยกเว้น
-
พยายาม
-
SecureRandom sr = SecureRandom ใหม่();
DESKeySpec dks = DESKeySpec ใหม่(key.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//ความยาวของคีย์ต้องไม่น้อยกว่า 8 ไบต์
คีย์ SecretKey = keyFactory.generateSecret (dks);
การเข้ารหัส = Cipher.getInstance (ALGORITHM_DES);
IvParameterSpec iv = ใหม่ IvParameterSpec("********".getBytes());
อัลกอริทึมพารามิเตอร์พารามิเตอร์ paramSpec = iv;
cipher.init (Cipher.DECRYPT_MODE, secretKey, paramSpec);
กลับ cipher.doFinal (ข้อมูล);
} จับ (ยกเว้น e)
-
// e.printStackTrace();
โยนข้อยกเว้นใหม่ (e);
-
-
-
* รับค่าที่เข้ารหัส
* @คีย์พารามิเตอร์
* ข้อมูล @param
* @กลับ
* @throwsException
* @throwsException
-
decodeValue สตริงคงที่สาธารณะ (คีย์สตริง ข้อมูลสตริง) พ่นข้อยกเว้น
-
ข้อมูลไบต์ [];
ค่าสตริง = null;
datas = ถอดรหัส (คีย์ Base64.decode (ข้อมูล));
ค่า = สตริงใหม่ (ข้อมูล);
ถ้า (value.equals("")){
โยนข้อยกเว้นใหม่ ();
-
ค่าส่งคืน;
-
-