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

Golang常见编码

1. URL 编码、解码

2. base64 编码、解码

3. hex 编码、解码

4. md5 编码

5. sha-1 编码

6. sha-256 编码

7. sha-512 编码

package mainimport ("crypto/md5""crypto/sha256""crypto/sha512""encoding/base64""encoding/hex""encoding/json""fmt""net/url"
)// URL 编码
func UrlEncode(original string) (encoded string) {encoded = url.QueryEscape(original)return encoded
}// URL 解码
func UrlDencode(original string) (decoded string, err error) {decoded, err = url.QueryUnescape(original)return
}// base64 编码
func Base64Encode(original string) (encoded string) {encoded = base64.StdEncoding.EncodeToString([]byte(original))return encoded
}// base64 解码
func Base64Decode(original string) (decoded string, err error) {dec_str, err := base64.StdEncoding.DecodeString(original)return string(dec_str), err
}// hex 编码
func HexEncode(original string) (encoded string) {encoded = hex.EncodeToString([]byte(original))return encoded
}// hex 解码
func HexDecode(original string) (decoded string, err error) {bytes, err := hex.DecodeString(original)return string(bytes), err
}// md5 编码
func MD5Encode(original string) (encoded string) {// 创建一个新的 MD5 哈希对象hasher := md5.New()// 写入数据hasher.Write([]byte(original))// 计算哈希值hash := hasher.Sum(nil)// 将哈希值转换为十六进制字符串hashString := hex.EncodeToString(hash)return hashString
}// sha1 编码
func Sha1Encode(original string) (encoded string) {// 创建一个新的 SHA-1 哈希对象hasher := sha1.New()// 写入数据hasher.Write([]byte(original))// 计算哈希值hash := hasher.Sum(nil)// 将哈希值转换为十六进制字符串hashString := hex.EncodeToString(hash)return hashString
}// sha256 编码
func Sha256Encode(original string) (encoded string) {// 创建一个新的 SHA-256 哈希对象hasher := sha256.New()// 写入数据hasher.Write([]byte(original))// 计算哈希值hash := hasher.Sum(nil)// 将哈希值转换为十六进制字符串hashString := hex.EncodeToString(hash)return hashString
}// sha512 编码
func Sha512Encode(original string) (encoded string) {// 创建一个新的 SHA-512 哈希对象hasher := sha512.New()// 写入数据hasher.Write([]byte(original))// 计算哈希值hash := hasher.Sum(nil)// 将哈希值转换为十六进制字符串hashString := hex.EncodeToString(hash)return hashString
}func main(){str := "123456+abc"fmt.Println("原始值:", str)// url编码urlEncode := UrlEncode(str)fmt.Println("url编码:", urlEncode)// url解码urlDencode, _ := UrlDencode(urlEncode)fmt.Println("url解码:", urlDencode)// base64编码base64Encode := Base64Encode(str)fmt.Println("base64编码:", base64Encode)// base64解码base64Dencoded, _ := Base64Decode(base64Encode)fmt.Println("base64解码:", base64Dencoded)// hex编码hexEncode := HexEncode(str)fmt.Println("hex编码:", hexEncode)// hex解码hexDencode, _ := HexDecode(hexEncode)fmt.Println("hex解码:", hexDencode)// md5编码fmt.Println("md5编码:", MD5Encode(str))// sha-1编码fmt.Println("sha-1编码:", Sha1Encode(str))// sha-256编码fmt.Println("sha-256编码:", Sha256Encode(str))// sha-512编码fmt.Println("sha-512编码:", Sha512Encode(str))}

输出结果:

原始值: 123456+abc

url编码: 123456%2Babc

url解码: 123456+abc

base64编码: MTIzNDU2K2FiYw==

base64解码: 123456+abc

hex编码: 3132333435362b616263

hex解码: 123456+abc

md5编码: 5e4f407d2a09d76203273bdf4be46815

sha-1编码: a2c6933ae32fbafb9ba9c824b0ae9aa9c86c9191

sha-256编码: b8f9ab210dd328fb4175af2e9dbbe1be36171367d06158ab180fe7d76bb8b1c8

sha-512编码: 9cd87122ad0e5784d51a4689373b03e9b01f0c7d0bff8160fdb1d8d18fd46f94027a56a444904d4b2179c8d3c447330f35126246804b96baff3fa433d658dfec

相关文章:

Golang常见编码

1. URL 编码、解码 2. base64 编码、解码 3. hex 编码、解码 4. md5 编码 5. sha-1 编码 6. sha-256 编码 7. sha-512 编码 package mainimport ("crypto/md5""crypto/sha256""crypto/sha512""encoding/base64""encoding/h…...

搭建Spring gateway网关微服务

在使用微服务架构时,往往我们需要搭建一个网关服务,作为各个微服务的统一入口。Spring gateway作为网关服务的后起之秀,受到各大企业的欢迎。下面介绍下网关服务Spring gateway的搭建。 引入依赖,这一步比较重要,也需要…...

性能测试|JMeter接口与性能测试项目

前言 在软件开发和运维过程中,接口性能测试是一项至关重要的工作。JMeter作为一款开源的Java应用,被广泛用于进行各种性能测试,包括接口性能测试。本文将详细介绍如何使用JMeter进行接口性能测试的过程和步骤。 JMeter是Apache组织开发的基…...

spring boot 难点解析及使用spring boot时的注意事项

1、难点解析: 1.1 配置管理: --- 尽管Spring Boot强调“习惯优于配置”,但在实际项目中,仍然需要面对大量的配置问题。如何合理地组织和管理这些配置,以确保项目的稳定性和可维护性,是一个挑战。 --- Sp…...

通过投毒Bingbot索引挖掘必应中的存储型XSS

简介 在本文中,我将讨论如何通过从外部网站对Bingbot进行投毒,来在Bing.com上实现持久性XSS攻击。 什么是存储型或持久性XSS?存储型攻击指的是将恶意脚本永久存储在目标服务器上,例如数据库、论坛、访问日志、评论栏等。受害者在…...

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55

STM32 BootLoader 刷新项目 (九) 跳转指定地址-命令0x55 前面我们讲述了几种BootLoader中的命令,包括获取软件版本号、获取帮助、获取芯片ID、读取Flash保护Level。 下面我们来介绍一下BootLoader中最重要的功能之一—跳转!就像BootLoader词汇中的Boot…...

【Linux篇】面试——用户和组、文件类型、权限、进程

目录 一、权限管理 1. 用户和组 (1)相关概念 (2)用户命令 ① useradd(添加新的用户账号) ② userdel(删除帐号) ③ usermod(修改帐号) ④ passwd&…...

PET-文件包含

include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…...

实现uniapp-微信小程序 搜索框+上拉加载+下拉刷新

pages.json 中的配置 { "path": "pages/message", "style": { "navigationBarTitleText": "消息", "enablePullDownRefresh": true, "onReachBottomDistance": 50 } }, <template><view class…...

PostgreSQL 修改字段类型但是存在视图依赖

其实视图的存在与否在数据库界一直是一个话题。用好视图可以简化程序的很多代码&#xff0c;用不好视图不仅会给维护带来很多的不便&#xff0c;也会造成很大的性能问题。下面我从维护方面给出案例&#xff0c;以及当存在这种问题的时候&#xff0c;如何去解决这个问题。 假设…...

基于.NET 9实现实时进度条功能:前后端完整示例教程

要在基于.NET 9的应用中实现进度条功能&#xff0c;我们可以通过HttpContext.Response来发送实时的进度更新到前端。以下是一个简单的示例&#xff0c;展示了如何在ASP.NET Core应用中实现这一功能。 但是&#xff0c;我在.net framework4.7.2框架下&#xff0c;实际不了HttpC…...

力扣 LeetCode 19. 删除链表的倒数第N个结点(Day2:链表)

解题思路&#xff1a; 快慢指针 class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy new ListNode(-1);dummy.next head;ListNode fast dummy;ListNode slow dummy;for (int i 0; i < n; i) {fast fast.next;}while (fast.ne…...

音频格式转换

一、场景 项目需求需要App实现声纹识别功能&#xff0c;调用科大讯飞接口&#xff1a; 声纹识别 API 文档 | 讯飞开放平台文档中心 其接口要求音频文件格式为mp3 二、问题产生 在安卓端根据官方文档说明&#xff0c;系统并不支持直接录制mp3格式音频&#xff0c;支持格式如…...

npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系

文章目录 作用示例常用选项示例命令注意事项 1、实战举例**解决方法**1. **锁定唯一的 types/node 版本**2. **清理依赖并重新安装**3. **设置 tsconfig.json 的 types**4. **验证 Promise 类型支持** **总结** npm list types/node 命令用于列出当前项目中 types/node 包及其…...

【Spring】Spring框架中有有哪些常见的设计模式

Spring 框架中广泛运用了多种设计模式&#xff0c;今天让我们来学习一下 1. 单例模式&#xff08;Singleton Pattern&#xff09; 用途&#xff1a;在Spring框架中&#xff0c;Bean默认是单例的&#xff0c;也就是说在容器中每种类型的Bean只有一个实例。这个设计可以节省资源…...

提升百度排名的有效策略与技巧解析

内容概要 提升百度排名对于网站的成功至关重要。首先&#xff0c;了解百度排名的基本原则&#xff0c;掌握搜索引擎是如何评估网页质量的&#xff0c;是优化过程中不可或缺的一部分。搜索引擎越来越倾向于将用户需求放在首位&#xff0c;因此提供高质量的内容和良好的用户体验…...

【Linux】Linux下查看cpu信息指令(top/mpstat/iostat/pidstat)说明

top命令 top(1) - Linux manual page (man7.org) top查看总的CPU利用率 us: 用户空间消耗的CPU资源占比&#xff0c;进程在用户态执行函数调用&#xff0c;编解码消耗的都是us sy: 内核空间消耗的CPU资源占比&#xff0c;进程调用系统调用达到内核后会增加sy的消耗 ni&…...

HDLBIts习题(3):使用冒号表示位宽时,冒号两端必须是常量

&#xff08;1&#xff09;易错习题1&#xff1a;Circuits - Combinational Logic - Multiplexers - 256-to-1 4bit multiplexer 使用冒号表示位宽时&#xff0c;冒号两端必须是常量&#xff0c;因此如果使用变量&#xff0c;可以使用位拼接的方法。 &#xff08;2&#xff09;…...

C++20协程详解

文章目录 什么是协程为什么需要协程什么时候使用协程协程的类别C20的协程协程的使用关键字co_wait框架一阶段完成数据交换co_yieldco_return 什么是协程 我们在学习编程的过程中&#xff0c;逐渐从单线程&#xff0c;到多线程&#xff0c;再到异步编程和并发处理 这些异步与并…...

Chromium 中chrome.system.display扩展接口定义c++

一、chrome.system.display 使用 system.display API 查询展示元数据。 权限 system.display 类型 ActiveState Chrome 117 及更高版本 用于指示系统是否检测到和使用显示屏的枚举。如果系统未检测到显示屏&#xff08;可能断开连接&#xff0c;或因睡眠模式等原因而被视…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...