golang判断字符串是否base64编码的字符串 可准确判断是或否

非常简单的判断一个字符串是否base64编码的方法,就是使用正则+base64自身的解码+转码来判断,如果失败则一定不是base64编码,否则是base64编码:


// 使用正则+自身的解码转码来判断字符串是否是base64,可以判断一定不是。
func JudgeBase64(str string) bool {// 先试用正则来判断pattern := "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$"matched, err := regexp.MatchString(pattern, str)if err != nil {return false}if !(len(str)%4 == 0 && matched) {return false}// 在使用自身带的解码和转码 在查看他么的值是否相等,如果相等说明是base64 否则不是deStr, err := base64.StdEncoding.DecodeString(str)if err != nil {return false}bs64Str := base64.StdEncoding.EncodeToString(deStr)//如果解码后再转码和原来的字符一样说明是base64return str == bs64Str
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL怎样运行的》-从一条记录说起-InnoDB记录存储结构

我们都知道MySQL是用来存储数据的,那你有没有的疑问,他是怎么存储的,它实际上是在使用储存引擎,那如果有人问你MySQL的储存引擎有哪些你该怎么说呢,主要是有InnoDB,MyISAM还有MEMORY,后面两种在…

springboot 3.3版本 类数据共享(CDS)提升启动速度 使用方法+Docker打包代码

springboot 3.3 版本已经正式发布,新版本提供了类数据共享(CDS)功能,通过将类元数据缓存在 Archive(归档/存档) 文件中,使其可以快速预加载到新启动的 JVM 中,从而帮助缩短 JVM 的启…

leetcode题目18

四数之和 中等 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)&#xf…

HiWoo Box工业网关

在科技飞速发展的今天,工业领域正迎来智能化变革。在这场变革中,工业网关作为连接工业设备与远程控制中心的桥梁,发挥着至关重要的作用。HiWoo Box网关凭借其卓越的性能和广泛的应用场景,为工业领域带来了全新的智慧化解决方案。 …

大模型主流 RAG 框架TOP10

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…

中心入侵渗透

问题1. windows登录的明文密码,存储过程是怎么样的?密文存在哪个文件下?该文件是否可以打开,并且查看到密文? 回答: Windows登录的明文密码的存储过程是: 当用户尝试登录Windows时&#xff0…

Mac软件公正方式

1、先执行 xcrun notarytool store-credentials "ccc-test" --apple-id "12345678qq.com" --team-id BHKKKKKK --password ljsp-xxxx-xxxx-xxxx 其中 ccc-test 为随便起的一个名字 --apple-id 为自己的apple 开发者账号 --team-id 自己的team --passw…

mysql的inner join 和left join区别

1. INNER JOIN INNER JOIN 只返回两个表中满足连接条件的匹配行。换句话说,它只返回那些在连接的两个表中都有匹配值的行。如果某一行在其中一个表中没有匹配项,那么这行不会出现在结果集中。 写法: SELECT columns FROM table1 INNER JOI…

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程

瓦罗兰特国际服怎么注册账号 瓦罗兰特 无畏契约账号注册教程 瓦罗兰特作为拳头游戏开发的一款多人竞技第一人称射击游戏,自从2020年发布之后,热度持续升高,游戏采用5V5竞技模式,采用了传统FPS中游戏的类型,玩家们分为…

样本拟合正弦函数? 梯度下降法? NO,比梯度下降还快的算法.

假设样本数据是跟sin函数值相关的. 那么如何求这些数据的相位和振幅?还有频率? 搞了半天的梯度下降算法. 准备拟合出合适的参数值. 代码是人工智能生成的. 跑不通 , 自己改了一下也是跑不通. 因为sin函数的拟合牵扯到求偏导数. . 梯度下降算法的原理是通的. 可不知道是哪里的…

【软考】下篇 第19章 大数据架构设计理论与实践

目录 大数据处理系统架构特征Lambda架构Lambda架构介绍Lambda架构实现Lambda架构优缺点Lambda架构与其他架构模式对比 Kappa架构Kappa架构介绍Kappa架构实现Kappa架构优缺点 常见Kappa架构变形(Kappa、混合分析系统)Kappa架构混合分析系统的Kappa架构 La…

Golang协程和通道

文章目录 协程(goroutine)基本介绍GMP模型协程间共享变量 通道(channel)基本介绍channel的定义方式channel的读写channel的关闭channel的遍历方式只读/只写channelchannel最佳案例select语句 协程(goroutine&#xff0…

撤销最近一次的提交,使用git revert 和 git reset的区别

文章目录 工作区 暂存区 本地仓库 远程仓库需求:已推送到远程仓库,想要撤销操作git revert (添加新的提交来“反做”之前的更改,云端会残留上次的提交记录)git reset(相当于覆盖上次的提交)1.--…

Maven高级详解

文章目录 一、分模块开发与设计分模块开发的意义模块拆分原则 分模块开发(模块拆分)创建Maven模块书写模块代码通过maven指令安装模块到本地仓库(install指令) 二、依赖管理依赖传递可选依赖排除依赖可选依赖和排除依赖的区别 三、聚合与继承聚合工程聚合工程开发创建Maven模块…

getPopupContainer解决ant-design-vue select组件下拉框偏移错位

getPopupContainer解决ant-design-vue select组件下拉框偏移错位 如何使下拉框跟随select移动解决下拉框偏移和table中下拉框失去焦点问题 <SelectallowClearclass="book-select"@change="value=>handleSelectChange(publish,value)"placeholder=&qu…

老师如何在线发布期末考试成绩查询?

在这个数字化时代&#xff0c;教育领域也迎来了翻天覆地的变化。传统的纸质成绩查询方式已经逐渐被在线成绩查询所替代。如何高效、便捷地进行在线期末考试成绩查询&#xff1f; 成绩的录入与上传。教师需要将学生的考试成绩准确无误地录入系统。这一步骤需要细心和耐心&#x…

AI数字人及其应用

本文将简单了解下AI数字人、应用场景。 一、基本认识 AI数字人&#xff1a;使用人工智能技术创建的虚拟数字化人物。这些数字人物可以被设计成具有人类般的外观、行为和交互能力。它们通常用于虚拟现实、视频、游戏、培训模拟、客户服务等领域。 其中AI数字人在视频制作中是…

阻塞、非阻塞、同步与异步IO的区别

IO读取数据的过程 如图所示&#xff0c;进程读取数据的过程主要分为两个步骤 1.内核将数据准备好到内核缓冲区 2.内核将数据拷贝到用户态 在上述这两个过程里&#xff0c;进程首先和内核打交道&#xff0c;之后内核再和硬件&#xff08;如网卡&#xff09;打交道 阻塞IO 如图所…

鹏哥C语言复习——调试

目录 什么是调试&#xff1f; Debug和Release&#xff1a; 调试方法&#xff1a; 环境准备&#xff1a; 调试快捷键介绍&#xff1a; 调试快捷键注意事项&#xff1a; 监视与内存查看&#xff1a; 数组元素的监视&#xff1a; 编译常见错误归类&#xff1a; 编译型错…

代码随想录Day35

122.买卖股票的最佳时机|| 题目&#xff1a;122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;感觉就是找上升区间&#xff0c;定义两个指针&#xff0c;移动终点去找下一个值&#xff0c;一旦发现数值下降&#xff0c;就计算下降前一个数字…