我使用加密來創建查詢參數,通過下載鏈接到各個文件,通過電子郵件發送給個人。但是,我注意到加密的字符串對於類似的文件名非常相似。我想改變這一點。Java/Groovy:隨機化加密字符串更好
這裏是我目前使用的代碼:
Cipher cipher = Cipher.getInstance('AES/CBC/PKCS5Padding')
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec('****************' as byte[], AES'),
new IvParameterSpec('***************' as byte[]))
String fileId = Base64.encodeBase64String(
IOUtils.toByteArray(
new CipherInputStream(
new DeflaterInputStream(
new ByteArrayInputStream(
('File: ' + filename).getBytes('UTF-8')
)
), cipher
)
)
)
例如,如果我有一個名爲Something_8.3.0.1471.exe和Something_8.3.0.1471_License.txt文件我會得到以下兩個字符串:
mVjCmP2GCyxMJ1i5GHT1OOZEYXy1%2Buz%2BQ53QMelR4QU%2FTowMdjNcMjojlbjuTJEd
和
mVjCmP2GCyxMJ1i5GHT1OB%2F5S1rolp%2BwK9dATPdPtHn3uQiXnYUhLmym6hMI65TVfjA5IzSYInI9iIjZn9eExg%3D%3D
第20個或所以加密的STR的字符ing是相同的,顯然是因爲文件名的開始是相同的。我想知道是否有可能刪除這種相同性(如果這是一個字)。未加密的字符串中的任何更改是否可能對整個加密字符串造成更顯着的影響?如果是這樣,我將如何在上述代碼中對Java/Groovy進行更改?