目录

  • 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相关推荐

  1. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别

    ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别 最近老为编码问题而烦燥,下定决心一定要将其弄明白!本文主要总 结网上一些朋友提供的 asc ...

  2. HTTP的两种常用请求方式GET和POST

    HTTP的两种常用请求方式GET和POST HTTP:HTTP协议(HyperText Transfer),用于从万维网(WWWW:World Wide Web)服务器传输超文本到本地浏览器的传输协议 ...

  3. jQuery中ajax的4种常用请求方式

    jQuery中ajax的4种常用请求方式:1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信 ...

  4. QT学习笔记(七):定时器事件的3种常用使用方式

    QT学习笔记(七):定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法:一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数,一种就是使用QTimer类. 其 ...

  5. 移动小额支付业务系统几种常用实现方式的分析和比较

    关键词: 移动小额支付   小额支付   移动支付   电子支付    摘  要: 随着移动小额支付业务逐渐走入人们的日常生活中,它已成为运营商争夺的数据业务焦点之一.文章对当前移动小额支付业务系统的 ...

  6. CN_@物理层@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图

    文章目录 CN_@信噪比@分贝单位@奈奎斯特定理@香农公式@常用编码方式(曼彻斯特编码/差分曼彻斯特编码)波形图 通信基础概念 数据 (data) 信号 (signal) 基带信号 模拟信号 (ana ...

  7. VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量

    VOS中开启媒体转发功能后,计算几种常用编码所需占用的带宽量 计算方法如下: 带宽 = 包长度 × 每秒包数 = 包长度 × (1 / 打包周期) =(Ethernet 头 + IP 头 + UDP ...

  8. 我理解的几种字符编码方式

    ANSII  这个是最基础的,只占用1个字节,反正键盘上能看到的显示的字符都能表示出来,范围是0x00~0x7F,保存英文字符够用了!后来,估计是觉得不够用,把128~255也扩展了出来. ANSI ...

  9. 说说4种常用编码的区别?

    问:说说ASCII,Unicode,UTF-8,GBK的区别? 答:Python2内容默认ascii进行编码,而Python3对内容进行编码的默认为utf-8.这个编码问题,也不是Python的问题, ...

最新文章

  1. [007]C++---写一个函数,返回它自己
  2. 基于ZXing的二维码,你可以这样改造它
  3. 【译】Analyzing Token Sale Models
  4. 宝塔+wordpress搭建/迁移网站
  5. C++中成员初始化列表的使用
  6. (2)把BlackBerry作为插件安装到已有的Eclipse中
  7. NVIDIA DGX低至7.5折限时抢购,全球首款深度学习超级计算机组合
  8. git命令之git rebase 的用法
  9. 远程控制多台服务器,perl远程执行多台服务器shell命令
  10. python中if语句中可用break_python跳出if语句
  11. php太平洋时间转成北京时间,北京时间 → 太平洋时间 换算表 和太平洋时间 → 北京时间 换算表...
  12. 桌面图标变白,任务栏图标变白
  13. 【转】HTML5前端性能优化——浏览器兼容与前端性能优化
  14. 服务器机柜与网络机柜
  15. 联通云OSS上传文件
  16. 实验二、贪吃蛇游戏开发
  17. 视频的上传及购买播放
  18. Matlab图形绘制(一)三维曲线
  19. windos10本地安装git工具并使用
  20. mplayer-php,使用MPlayer开发万能播放器-原理篇

热门文章

  1. python职业发展规划书范文_职业生涯规划书范文 3篇
  2. linux Rh界面,Ubuntu Linux与RH系列的不同之处
  3. java.sql 拒绝连接_java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝
  4. 倒计时_考研倒计时30天,拼了
  5. linux生成ssl申请文件,Shell脚本实现生成SSL自签署证书
  6. 计算机应用综合实践课程报告,南通大学继续教育学院软件工程综合实践课程报告书——生产信息化工作管理系统...
  7. 如何在Win7旗舰版中安装并设置IIS
  8. python gui控件案例_python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例...
  9. python的软件环境是什么意思_python的虚拟环境详解
  10. centos6.8yum安装mysql_centos6.8 yum安装mysql 5.6 (完整)