亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Base64 不對整個字符串進行編碼

Base64 不對整個字符串進行編碼

慕森王 2022-06-23 17:21:08
當我對tex進行編碼時,由于某種原因它會切斷部分字符串......可能是什么問題?        DateFormat dateFormat =                new SimpleDateFormat("MM/dd/yyyy HH:mm:ss a", Locale.ENGLISH);        Date date = new Date();        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        calendar.add(Calendar.HOUR,+ 9);        String server_time = dateFormat.format(calendar.getTime());        String wmsAuthSign = "server_time=" + server_time + "&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120";        wmsAuthSign = "?wmsAuthSign=" + Base64.encodeToString(wmsAuthSign.getBytes(), Base64.DEFAULT);我正在提交這樣的內容:server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120如果你解碼編碼的文本,你會得到一個修剪的結果:server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55J
查看完整描述

1 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

由于RFC-2045

(5)   (Soft Line Breaks) The Quoted-Printable encoding
      REQUIRES that encoded lines be no more than 76
      characters long.  If longer lines are to be encoded
      with the Quoted-Printable encoding, "soft" line breaks

源數據字符串:

server_time=02/18/2019 23:38:43 PM&hash_value=U2QK9TLB55JWTZr3OKZHtg==&validminutes=120

Base64 編碼為字符串:

c2VydmVyX3RpbWU9MDIvMTgvMjAxOSAyMzoxMjo1NiBQTSZoYXNoX3ZhbHVlPVUyUUs5VExCNTVKV1RacjNPS1pIdGc9PSZ2YWxpZG1pbnV0ZXM9MTIw

與上面顯示的完全一樣:帶換行符。但是在接收端你可能只解碼第一行

c2VydmVyX3RpbWU9MDIvMTgvMjAxOSAyMzoxMjo1NiBQTSZoYXNoX3ZhbHVlPVUyUUs5VExCNTVK

那是server_time=02/18/2019 23:12:21 PM&hash_value=U2QK9TLB55J

因此,在接收器端解碼整個接收到的數據,而不僅僅是第一行。

或者您可能僅將編碼 Base64 的第一行發送到接收方。

另請查看Mohammad Adil的這個答案:

在 android 上,使用Base64.NO_WRAP而不是Base64.DEFAULT


查看完整回答
反對 回復 2022-06-23
  • 1 回答
  • 0 關注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號