【问题标题】:Does encrypting preserve Base64 encoding加密是否保留 Base64 编码
【发布时间】:2017-11-08 12:30:07
【问题描述】:

是编码 (Base64) - 加密 - 通过 HTTP 安全传输。

还是加密-编码-传输的正确方式?

是否有可能因此导致数据损坏 Why do we use Base64?

使用:Javax 密码 AES/CBC/PKCS5Padding

用于加密带有多个文件附件的多部分 http 请求

编码:base64

【问题讨论】:

  • 诀窍总是先编码,然后再加密。总是先解密然后再解码。
  • 加解密要在原来的(更紧凑的)byte[]上做。然后为了安全传输为纯 7 位 ASCII text 进行 Base64 编码/解码。 (如果要加密文本,请执行getBytes("UTF_")new String(bytes, "UTF-8"))。
  • 当您需要传输 文本数据 而不是二进制数据时,您使用 base64 - 例如在使用基于文本的协议时 - 所以encrypt(base64(x)) 不是您通常会使用的东西.如果您正在执行多部分/表单数据上传,则不需要编码,您可以在请求正文中使用密文的原始字节。
  • 是的,您的加密数据是二进制而不是文本,因此不安全,因为它不应该被视为或视为文本,因为它不是。
  • @akshayapandey 编码为base64然后加密?这没有任何意义。

标签: java encryption base64


【解决方案1】:

解决这个问题的正确方法是加密原始信息,然后编码为base64。反向解密显然是一样的。

原始二进制数据不适用于 HTTP,除非它是请求的主体。如果您在正文中传递数据,则不要编码为 base64,只需发送原始二进制密文,因为它会减小请求的大小。

【讨论】:

  • 谢谢你这样做
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多