加密算法学习以及base64加密解密应用

密码学:一文看懂Base64算法 Base64常常在我们开发中出现,我们可能只知道它是一串乱码(看不懂的符号),知道有时候知道我们需要把一些数据进行base64编码,有时候需要进行Base64解码。但是却不知道它的作用是什么?它存在的意义是什么?还有它是如何生成的?如何编码和解码?上述的疑问相信在你读完本篇文章之后烟消云散。下面开始正文。Base64是什么?它和加密解密操作有什么关系吗?没错,这就是经过Base64编码后的字符串。对它解码后,我们获得以下内容点个关注,是对我持续创作的最大的鼓励! 阅读详情
加密算法
      关于多表单在项目中的应用主要是上传文件,因为所有上传lms的操作,必须校验username&password两个关键参数。由在解决这个问题的过程中,无论是使用自己写的拼接method又或者调用AFNetWorking的上传函数(里面已经实现了多表单的拼接),在WireShark中检查的格式也是正确的,后台也无法解析获得正确参数,因此采取了把参数放置http header的方式来传递参数。
     但因为http header的内容是通过抓包工具便可轻易获取的,而且内容又是明文,因此用于传输密码参数是极其不安全的,因此需要用到加密算法。
     而加密技术分别有两大类,分别是对称式加密技术与非对称式加密技术。
       
对称式加密技术
对称式加密就是加密和解密使用同一个 密钥,通常称之为“Session Key ”这种 加密技术在当今被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式” 加密法,它的Session Key长度为56bits。
密钥是用于加密解密的一个特殊字段,需要加密的数据与密钥经过相对应的算法运算后会获得相应的密文。
但由于密钥是公开的,因此若加密了的消息被第三方截获后,第三方还有可能解码,获得传输的明文。
对称式加密算法的优点是速度快,但安全性较非对称式加密技术低。

非对称式加密技术
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难不把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
非对称加密技术的安全性更高,但加密解密速度较慢。
              若想更好地理解公钥、私钥、数字证书的概念可以参考《图说公钥、私钥与数字证书》

     base64加密解密应用
     base64在本项目中用于解决文件上传时,传递username、password关键参数的功能。因为多表单于后台无法获取关键参数,因此只好把username、password放置到http header中。
      因此需要base64 这种八位可逆的加密解密算法,将明文转成密文。
     具体实现如下。

     关于加密算法,针对项目需要,采用base64可逆加密算法实现关键信息的保护。具体实现如下:
//string to base64 string
+ ( NSString *) DataConvertBase64ByString:( NSString *) originStr{
   
    NSData * originData = [originStr dataUsingEncoding : NSUTF8StringEncoding ];
   
    NSString * encodeResult = [originData base64EncodedStringWithOptions : NSDataBase64EncodingEndLineWithLineFeed ];
   
    return encodeResult;
}

关于 DataConvertBase64ByString method是通过调用原生的 base64EncodedStringWithOptions method实现base加密,其中二进制数据的格式必须与服务器统一,项目中采用的是UTF-8.

//name omit for security
+ ( NSString *) keyOmit:( NSString *) key{
    if ([key isEqualToString : @"username" ]) {
        return @"u" ;
    } else if ([key isEqualToString : @"password" ])
        return @"p" ;
   
    return nil ;
}
关于 keyOmit method的作用是为了隐藏参数意义的作用。

  
uniapp中base64加密解密的实战应用与性能优化 本文详细探讨了在UniApp开发中Base64编码与解码的实战应用与性能优化。文章分析了为何Base64在跨平台场景下不可或缺,并对比了主流Base64库的优劣,推荐使用`base-64`库以确保多端兼容性。同时,深入讲解了处理图片等二进制数据、内存优化、URL安全编码及Unicode字符处理等进阶技巧,并通过一个“临时笔记”加密存储的完整案例,帮助开发者高效、安全地在UniApp项目中应用Base64技术。 阅读详情

相关推荐

Java中使用Hutool进行AES加密解密详解

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式编程的简洁性。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当。Hutool作为一款实用的Java工具类库,为开发者提供了简洁易用的AES加密解密API。

My_wife_QBL的博客 9449

Base64应用场景

有些情况下传输不可见字符不方便。比如一个纯文本协议,二进制中可能会出现被当做控制字符处理的部分。这样引起传输失败。很多比较老的协议还是只支持纯文本的,比如SMTP协议。有时在一些特殊应用的场合,大多数消息是纯文本的,偶尔需要用这条纯文本通道传一张图片之类的情况发生的时候,就会用到base64http虽然也是纯文本协议,但是http有针对二进制数据做特殊的规定(mime),所以用http直接传输二进制数据是可行的。但是有些特殊情况,比如返回需要在json内部之类的。 ...

weixin_44371237的博客 787

Base64原理

Base64算法最早应用于解决电子邮件传输的问题。早期,由于“历史问题”,电子邮件只允许ASCII码字符。如果要传输一封带有非ASCII码字符串的电子邮件,当它通过有“历史问题”的网关是就可能出现问题。这个网关很可能会对这个非ASCII码字符的二进制位做调整,即将这个非ASCII码的8位二进制码的最高位置为0。此时,用户收到的邮件将会是一封纯粹的乱码邮件,基于这个原因就产生了Base64算法。.........

应无所住而生其心 7520

什么是Base64,应用场景有哪些

什么是Base64,应用场景有哪些什么是Base64:Base64到底是加密,还是编码:Base64应用场景:java 开发中使用Base64: 我们经常在工作中听到类似的东西。加密,解密,编码,解码之类的字眼。其实很多同学,特别是转行培训出来的在这个时候往往是装聋作哑的,为什么呢? 因为不知道啊,而且很多人也不知道。很多兄的的工作焦虑就是从这里来的。 下来也不利用业余时间充电,那么就会被行业慢慢淘汰。所以咱们不能好高骛远,把基础学好。以后不说大富大贵,过上中产生活还是没什么大问题。 什么是Base64

易柏州的博客 3145

掌握加密解密及BASE64编码技术

在现代信息安全体系中,加解密技术是基础而关键的组成部分。本章将概述加解密算法,为读者提供一个关于加密技术的全面而深入的入门知识,同时为后续章节关于BASE64编码技术、对称加密与非对称加密技术、哈希函数与消息认证码等内容打下坚实的基础。对称加密是加密和解密使用相同密钥的加密技术,它的核心在于密钥的保密性。由于算法简单,加密速度快,对称加密在实际应用中占据重要地位。

weixin_42527589的博客 992

Java图片Base64加密与解密技术详解

类被设计为支持基本的Base64编码和解码操作,同时也支持带填充和不带填充的Base64 URL安全编码。这种设计使得开发者可以很容易地在不同的应用场景中选择合适的编码方式。从使用优势来看,类对比sun.misc包中的实现,主要在以下几个方面进行了改进:线程安全类中的操作是线程安全的,可以被多个线程安全地调用。灵活性:它提供了不同的编码器和解码器来满足不同场景下的需求。可扩展性:通过提供编码器和解码器的接口,允许开发者实现自己的编码规则,为特定需求提供支持。

weixin_34162851的博客 1729

数据包分析

利用wireshark工具对已给出的数据包进行分析,找到数据包中的敏感字符,拿到其密文,该密文可能是利用MD5加密的,也可能是利用Base64位加密的,需要把密文利用解密工具解出来,解密出来的明文值就是我们要提交的key值。

难办就别办的博客 734

银行会计第2课:交易和核算分离的思想

核算作为会计的基础,将交易转化为可量化的信息,而会计则通过整合核算结果,实现对经济活动的全面把控。- 本质:指企业或主体之间发生的、能引起经济利益变动的具体事项,比如采购商品、销售货物、支付工资等,是客观发生的经济事实。可售产品(业务视角的核算对象) + 属性条件(核算的分类,限制等) = 核算类型(会计视角,含有科目分类内容)- 核算:会计人员根据采购发票、入库单等,将这笔交易记为“借:原材料,贷:银行存款”(对事实的会计处理)。- 特点:是核算的源头,不涉及会计处理,仅代表经济行为的发生。

ademen的博客 498

04 非对称加密

非对称加密 1 简介 非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥 (public key),即公钥,另一个称为私有密钥 (private key),即私钥。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。 如果使用公钥对数据进行加密,只有用对应的私钥才能进行解密。 如果使用私钥对数据进行加密,只有用对应的公钥才能进行解密。 2 常见算法 2....

JasBin2008的专栏 485

什么是PMOS?什么是NMOS?两者有什么区别?

这个电压差被称为阈值电压(Vth),通常为0.7V至2V(低压NMOS)或4V至10V(功率NMOS)。当Vgs(栅极-源极电压)大于Vth时,沟道中的电子被吸引到栅极下方,形成导电通路,使电流可以从漏极流向源极。NMOS与PMOS的结构类似,都由三大部分组成:栅极(Gate)、源极(Source)和漏极(Drain)。由于NMOS在开启时,电子是主要的载流子,电子的迁移率比空穴高,因此NMOS通常具有更低的导通电阻(Rds(on)),这使其成为高速开关电路中的首选。它的沟道由电子(负载子)传导。

硅农深芯的博客 6437

ZYNQ双核通信实战:手把手教你用OpenAMP搭建Linux+FreeRTOS开发环境(2018.3版)

本文详细介绍了如何在ZYNQ平台上使用OpenAMP框架实现双核通信,构建Linux与FreeRTOS协同开发环境。从开发环境配置、系统组件编译到OpenAMP框架应用,手把手指导开发者完成ZYNQ双核通信系统的搭建与调试,为异构计算开发提供实用解决方案。

weixin_33737134的博客 476

【信道估计】基于matlab最小二乘法LS+最小均方误差MMSE+线性最小均方误差法LMMSE OFDM信道估计【含Matlab源码 3897期】

最小二乘法LS+最小均方误差MMSE+线性最小均方误差法LMMSE OFDM信道估计 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 1497

QT触摸屏开发:如何通过重写事件处理实现精准按键长按检测

本文针对QT触摸屏开发中按键长按检测不精准的常见问题,深入剖析了传统信号机制失效的原因,并提供了通过重写事件处理函数(event)的解决方案。文章详细介绍了创建自定义TouchButton类、直接处理QTouchEvent以实现可靠长按检测的完整步骤与代码示例,并分享了进阶优化与避坑指南,帮助开发者实现跨平台一致的精准交互。

weixin_29207149的博客 95

BASE64加密解密(两种方式)

严格来说BASE64的加密解密是指编码格式,而非加密算法我们暂且将它归为加解密方式的一种对于Base64的使用有两种方式:第一种直接使用sun.misc包下的BASE64工具第二种是使用org.springframework包下的Base64Utils工具相较于第一种,第二种更为方便。对于Base64的使用,仅限于简单加密需求的编码解码对于安全性较高的需求尽量使用更为安全的加密解密方式。

感谢阅读 1万+

DaVinci Developer中枚举类型变量的创建与实战应用

本文详细介绍了在DaVinci Developer中创建和使用枚举类型变量的方法与实战应用。通过智能温控系统的案例,阐述了枚举类型在嵌入式开发中的核心价值,包括提升代码可读性、类型安全性和维护便捷性。文章还提供了枚举类型在状态机实现和多模块协同中的高级应用技巧,以及调试与优化的实用建议。

ik678901234的博客 511

Plecs standalone 4.9.5最新版本,赶紧来下载使用吧,需要做并网逆变器及光伏储能变换器的朋友赶紧下载起来

PLECS 4.9.5较4.7.1版实现全面升级:采用自适应求解器切换技术,支持多核CPU/GPU加速,仿真速度提升30-50%;新增模型引用功能,实现模块化设计;强化光伏/风电等新能源组件,支持多物理场耦合分析;优化代码生成功能,兼容多种硬件平台和FMU导入。新版特别适用于复杂电力电子系统、多域联合仿真及硬件在环测试项目,但对硬件配置要求更高。基础教学项目仍可使用4.7.1版本。建议用户根据项目复杂度选择升级方案。

2433

Base64加密解密,致Android高级工程师的一封信

我最近从朋友那里收集到了2020-2021BAT 面试真题解析Android 基础、Java 基础、Android 源码相关分析、常见的一些原理性问题等等,可以很好地帮助大家深刻理解Android相关知识点的原理以及面试相关知识。这份资料把大厂面试中常被问到的技术点整理成了PDF,包知识脉络 + 诸多细节;还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。这里也分享给广大面试同胞们,希望每位程序猿们都能面试成功~点击直达GitHub。

碧海朝天素 986

〖Python WEB 自动化测试实战篇⑤〗- selenium 元素定位详解 - (八大元素定位方式)

测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 "操作" 这一部分又是建立在 "selenium" 元素定位的基础之上的。所以对元素对象的定位就显得越发的重要,接下来我们就学习一下常用的元素定位方法有哪些。......

易编橙 · 终身成长社群,相遇已是上上签! 4万+

AES加密解密python实现

AES 加密最常用的模式就是 ECB模式 和 CBC 模式,当然还有很多其它模式,他们都属于AES加密。ECB模式和CBC 模式俩者区别就是 ECB 不需要 iv偏移量,而CBC需要。AES加解密算法的参数参数作用及数据类型秘钥。

qq_33163046的博客 1万+

Unity3D实现视频和模型融合效果

在Unity中,视频和3D模型融合通常涉及到将视频表面内嵌到3D场景中。视频不影响模型的展示, 这可以通过使用Shader和Texture来实现。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。下面就让我们进入正文吧!提示:以下是本篇文章正文内容,下面案例可供参考本次介绍的就是视频和模型融合的实现,以后有其他的需要添加的会继续添加不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒。

心疼你的一切博客 5357

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

base64报文怎么解密_Java加密解密实用技术

加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书。如基本的单向加密算法:BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HM...

weixin_39588432的博客 566

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Base64加密解密,kotlin开源许可

import tsou.com.encryption.R; import tsou.com.encryption.base64.Base64Utils; /** 一、什么Base64算法? Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一, Base64并不是安全领域的加密算法,其实Base64只能算是一个编码算法, 对数据内容进行编码来适合传输。标准Base64编码解码无 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》 开

m0_64319112的博客 1216

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

加密算法大揭秘

在网络安全领域,加密算法是保障信息安全的关键技术。无论是在日常的安全测试中,还是面对复杂的网络环境,了解加密算法对于安全测试人员来说至关重要。今天我们就来深入学习常见的加密和编码算法。

m0_57836225的博客 775

第三章 基于java的加密解密 学习笔记(三)Base64

java 密码算法 加密 解密 Base64

beinlai123的博客 154

base64加密_联邦学习重要技术解读——你不得不知道的加密算法

“数据加密是联邦学习的一个重要环节,对于数据隐私保护起着至关重要的作用,本期推送将介绍常用的加密算法,并且给出部分加密算法基于Java的算法实现。”——来自“云时代架构”01 加密算法的主要类别常用的加密算法有对称加密算法,非对称加密算法,哈希算法等。对称加密,加密和解密是对称的,加密时用一个秘钥去加密,解密时用同一个秘钥去解密,由信息发送方和接收方共同约定一个秘钥。缺点是风险都在这个秘钥上面,一...

weixin_39981093的博客 498

Java加密算法---BASE64

Java加密算法的编程使用,,为了加深自己的印象,特意再次回顾一下,做到温故而知新! 既然学习Java加密算法,首先得知道什么是密码学? 密码学的基本功能:机密性、鉴别、报文完整性、不可否认性。(不可否认性是啥子呢) 基本模型: 基本加密解密的流程 Java密码学算法的分类消息编码:Base64 消息摘要:MD类、SHA类、MAC 对称密码:DES、3DES、AES 非对称密码:RSA...

轻描时光 602
上一篇: iOS http网络请求相关知识总结
下一篇: block应用与保留环
luozhiwei_iOS
博客等级 码龄12年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值