[英]AES-128 bit byte arrays to database in java
我有一個String(stringToEncrypt),它由AES-128加密並得到一個byte []。 我嘗試將該byte []作為String寫入數據庫。 以下示例:
String encryptedString = new String(aes.encode(stringToEncrypt.getBytes()));
“encode”方法獲取byte []作為參數並返回byte []。 “aes”對象進行AES-128編碼過程。 問題是,當我嘗試將encryptedString寫入DB時,寫入DB的某些字符與“String encryptedString”不同。 我認為問題是關於DB的字符集或我的代碼。 有什么建議嗎?
是的,它是一個字符編碼問題。 我之前在另一個地方見過它。 我會base64編碼或將其存儲為biginteger。
// byte array[];
BigInteger value = new BigInteger(array);
您可以使用BigInteger作弊並將它用於Base64的東西:
String b64 = value.toString(64);
String
是您的問題的錯誤數據類型。 如果您確實需要將原始字節編碼為字符串,請使用base64 。
如果可能,請嘗試將byte[]
直接存儲到數據庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.