当前位置: 首页 > news >正文

Base64加密解密

Base64 是一种基于 64 个可打印字符来表示二进制数据的编码方式,常用于需要通过文本协议传输二进制数据的场景(如 URL、邮件)。以下是不同场景下生成 Base64 编码的方法:

一、编程语言实现

  1. Python
import base64# 字符串转Base64
text = "Hello, World!"
encoded = base64.b64encode(text.encode('utf-8')).decode('utf-8')
print(encoded)  # 输出: SGVsbG8sIFdvcmxkIQ==# Base64转回字符串
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # 输出: Hello, World!
  1. JavaScript (浏览器环境)
// 字符串转Base64
const text = "Hello, World!";
const encoded = btoa(unescape(encodeURIComponent(text)));
console.log(encoded); // 输出: SGVsbG8sIFdvcmxkIQ==// Base64转回字符串
const decoded = decodeURIComponent(escape(atob(encoded)));
console.log(decoded); // 输出: Hello, World!
  1. Java
import java.util.Base64;public class Main {public static void main(String[] args) {// 字符串转Base64String text = "Hello, World!";String encoded = Base64.getEncoder().encodeToString(text.getBytes());System.out.println(encoded); // 输出: SGVsbG8sIFdvcmxkIQ==// Base64转回字符串byte[] decodedBytes = Base64.getDecoder().decode(encoded);String decoded = new String(decodedBytes);System.out.println(decoded); // 输出: Hello, World!}
}

二、命令行工具

  1. Linux/macOS
# 字符串转Base64
echo -n "Hello, World!" | base64
# 输出: SGVsbG8sIFdvcmxkIQ==# Base64转回字符串
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d
# 输出: Hello, World!# 文件转Base64
base64 image.jpg > image.txt# Base64转回文件
base64 -d image.txt > restored.jpg
  1. Windows PowerShell
# 字符串转Base64
[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("Hello, World!"))
# 输出: SGVsbG8sIFdvcmxkIQ==# Base64转回字符串
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("SGVsbG8sIFdvcmxkIQ=="))
# 输出: Hello, World!

三、在线工具

直接使用浏览器访问以下网站:
Base64 Encode/Decode
CyberChef(功能更强大)

四、URL 安全的 Base64

标准 Base64 中的 + 和 / 在 URL 中可能被转义,需替换为 - 和 _,并移除结尾的 =:

# Python示例
import base64text = "Hello, World!"
standard = base64.b64encode(text.encode('utf-8')).decode('utf-8')
url_safe = standard.replace('+', '-').replace('/', '_').rstrip('=')
print(url_safe)  # 输出: SGVsbG8sIFdvcmxkIQ

五、注意事项

编码类型:确保编解码时使用相同的字符集(如 UTF-8)。
二进制数据:Base64 编码会使数据体积增加约 33%(每 3 字节转为 4 字节)。
安全性:Base64 是编码而非加密,不具备安全性,敏感数据需配合加密算法使用。
通过以上方法,你可以在不同场景下生成和解析 Base64 编码。

相关文章:

  • C++:array容器
  • 十七、面向对象底层逻辑-MessageSource接口设计
  • 野火RK3588部署yolov8
  • html模板-源码免费下载-html通用模板-html建站模板
  • 大模型时代,Python 近红外光谱与 Transformer 模型:学习的必要性探究
  • 跨部门项目管理优化:告别邮件依赖
  • C++核心编程_初始化列表
  • 半导体器件
  • Linux权限
  • 搭建人工智能RAG知识库的主流平台与特点概述
  • 苍穹外卖05 Redis常用命令在Java中操作Redis_Spring Data Redis使用方式店铺营业状态设置
  • 学习python day4
  • ILRuntime中实现OSA
  • 第20天-python生成word文档
  • [Linux] Linux信号量深度解析与实践(代码示例)
  • C++ for QWidget:正则表达式和QRegExp
  • 提升搜索效率:深入了解Amazon Kendra的强大功能
  • ERP 与 WMS 对接深度解析:双视角下的业务与技术协同
  • origin绘图之【如何将多条重叠、高度重叠的点线图、折线图分开】
  • CASAIM与荣耀达成合作,三维数字化检测技术助力终端消费电子制造实现生产工艺智能优化
  • 龙岗-网站建设深圳信科/seo优化包括哪些内容
  • 泰安人才网首页/常州seo
  • 优秀网站建设出售/关键词分为哪三类