记录几种常用编码方式:BASE64、MD5
目录
- 1. BASE64
- 1.为什么要使用BASE64编码?
- 2. C语言实现
- 2. MD5
- 2.1. 主要特点
- 2.2. C语言实现
- 3.
1. BASE64
1.为什么要使用BASE64编码?
从编码方式上可以看出,Base64并不是一种真正意义上的加密算法,但经过编码也使得信息有了初级的加密效果。
之所以使用Base64编码是因为在一些系统中只能使用ASCII字符,计算机ascii码的128~255之间的值是不可见字符。为了使得信息在不同设备上能够正常显示,把数据先做一个Base64编码,统统变成可见字符,这样出错的可能性就大大降低了。Base64特别适合在http,mime协议下快速传输数据。
参考链接:
一篇文章彻底弄懂Base64编码原理
在线工具:Base64加密、解密 - 站长工具
2. C语言实现
C语言实现Base64编码/解码
2. MD5
2.1. 主要特点
1、长度固定。128bit的二进制数据,与原始数据长短无关。通常以16进制形式表示,即128/4=32
2、确定性。一个原始数据的MD5值是唯一的。
3、碰撞性。有可能多个原始数据计算出来的MD5值是一样的。
4、不可逆性。无法通过MD5值还原出原始数据。可参考第三点。
2.2. C语言实现
代码贴在前面:MD5算法C语言实现:亲测可用,感谢博主。
从测试代码main.c中可以看出,实际调用了三个函数即可:
//初始化核心变量,装入标准的幻数
int MD5_Init(MD5_CTX *c);
// 循环调用此函数,可以将不同的数据加在一起计算MD5,成功返回1,失败返回0
int MD5_Update(MD5_CTX *c, const void *data, size_t len);
// 输出MD5结果数据,成功返回1,失败返回0
int MD5_Final(unsigned char *md, MD5_CTX *c);
MD5算法步骤详解:文末有验证示例。
代码注释:md5加密算法c实现,七分注释
在线工具:MD5在线加密 - 站长工具
MD5算法 - 知乎
算法:MD5算法原理说明
漫画趣解MD5算法
MD5算法详解
MD5_百度百科
3.
记录几种常用编码方式:BASE64、MD5相关推荐
- ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别
ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别 最近老为编码问题而烦燥,下定决心一定要将其弄明白!本文主要总 结网上一些朋友提供的 asc ...
- HTTP的两种常用请求方式GET和POST
HTTP的两种常用请求方式GET和POST HTTP:HTTP协议(HyperText Transfer),用于从万维网(WWWW:World Wide Web)服务器传输超文本到本地浏览器的传输协议 ...
- jQuery中ajax的4种常用请求方式
jQuery中ajax的4种常用请求方式:1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信 ...
- QT学习笔记(七):定时器事件的3种常用使用方式
QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...
- 移动小额支付业务系统几种常用实现方式的分析和比较
关键词: 移动小额支付 小额支付 移动支付 电子支付 摘 要: 随着移动小额支付业务逐渐走入人们的日常生活中,它已成为运营商争夺的数据业务焦点之一.文章对当前移动小额支付业务系统的 ...
- CN_@物理层@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图
文章目录 CN_@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图 通信基础概念 数据 (data) 信号 (signal) 基带信号 模拟信号 (ana ...
- VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量
VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量 计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP ...
- 我理解的几种字符编码方式
ANSII 这个是最基础的,只占用1个字节,反正键盘上能看到的显示的字符都能表示出来,范围是0x00~0x7F,保存英文字符够用了!后来,估计是觉得不够用,把128~255也扩展了出来. ANSI ...
- 说说4种常用编码的区别?
问:说说ASCII,Unicode,UTF-8,GBK的区别? 答:Python2内容默认ascii进行编码,而Python3对内容进行编码的默认为utf-8.这个编码问题,也不是Python的问题, ...
最新文章
- [007]C++---写一个函数,返回它自己
- 基于ZXing的二维码,你可以这样改造它
- 【译】Analyzing Token Sale Models
- 宝塔+wordpress搭建/迁移网站
- C++中成员初始化列表的使用
- (2)把BlackBerry作为插件安装到已有的Eclipse中
- NVIDIA DGX低至7.5折限时抢购,全球首款深度学习超级计算机组合
- git命令之git rebase 的用法
- 远程控制多台服务器,perl远程执行多台服务器shell命令
- python中if语句中可用break_python跳出if语句
- php太平洋时间转成北京时间,北京时间 → 太平洋时间 换算表 和太平洋时间 → 北京时间 换算表...
- 桌面图标变白,任务栏图标变白
- 【转】HTML5前端性能优化——浏览器兼容与前端性能优化
- 服务器机柜与网络机柜
- 联通云OSS上传文件
- 实验二、贪吃蛇游戏开发
- 视频的上传及购买播放
- Matlab图形绘制(一)三维曲线
- windos10本地安装git工具并使用
- mplayer-php,使用MPlayer开发万能播放器-原理篇
热门文章
- python职业发展规划书范文_职业生涯规划书范文 3篇
- linux Rh界面,Ubuntu Linux与RH系列的不同之处
- java.sql 拒绝连接_java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝
- 倒计时_考研倒计时30天,拼了
- linux生成ssl申请文件,Shell脚本实现生成SSL自签署证书
- 计算机应用综合实践课程报告,南通大学继续教育学院软件工程综合实践课程报告书——生产信息化工作管理系统...
- 如何在Win7旗舰版中安装并设置IIS
- python gui控件案例_python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例...
- python的软件环境是什么意思_python的虚拟环境详解
- centos6.8yum安装mysql_centos6.8 yum安装mysql 5.6 (完整)