簡體   English   中英

AES-128位字節數組到java中的數據庫

[英]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);

BigInteger文檔

String是您的問題的錯誤數據類型。 如果您確實需要將原始字節編碼為字符串,請使用base64

如果可能,請嘗試將byte[]直接存儲到數據庫中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM