這裏的代碼展示瞭如何在你的應用程序,從tutorial採取使用基於密碼的加密(PBE)一個片斷:
PBEKeySpec pbeKeySpec;
PBEParameterSpec pbeParamSpec;
SecretKeyFactory keyFac;
// Salt
byte[] salt = {
(byte)0xc7, (byte)0x73, (byte)0x21, (byte)0x8c,
(byte)0x7e, (byte)0xc8, (byte)0xee, (byte)0x99
};
// Iteration count
int count = 20;
// Create PBE parameter set
pbeParamSpec = new PBEParameterSpec(salt, count);
// Prompt user for encryption password.
// Collect user password as char array (using the
// "readPasswd" method from above), and convert
// it into a SecretKey object, using a PBE key
// factory.
System.out.print("Enter encryption password: ");
System.out.flush();
pbeKeySpec = new PBEKeySpec(readPasswd(System.in));
keyFac = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey pbeKey = keyFac.generateSecret(pbeKeySpec);
// Create PBE Cipher
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
// Initialize PBE Cipher with key and parameters
pbeCipher.init(Cipher.ENCRYPT_MODE, pbeKey, pbeParamSpec);
// Our cleartext
byte[] cleartext = "This is another example".getBytes();
// Encrypt the cleartext
byte[] ciphertext = pbeCipher.doFinal(cleartext);
是密碼(或密碼短語),該應用程序提示不是選項? –
當你說「我只有我」時,你的意思是即使你的服務從不解密數據?也就是說,它只是將加密塊返回給用戶,並將其解密爲客戶端(如某些在線備份服務)?或者你的意思是你的應用仍然像現在這樣運行,用戶在沒有額外的努力/配置客戶端看到他們的數據,但幕後租戶1的數據加密與租戶2不同的關鍵? – ckhan
首先你說「管理員應該能夠定義密鑰」和「只有管理員應該知道密鑰」;那麼「我們如何讓每個用戶定義自己的密鑰?」。這些似乎是不相容的。我錯過了什麼? –