base64

Base64编码及其作用

只愿长相守 提交于 2020-02-29 11:53:32
Base64编码的作用:由于某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。它使用下面表中所使用的字符与编码。 而且base64特别适合在http,mime协议下快速传输数据。 base64其实不是安全领域下的加密解密算法。虽然有时候经常看到所谓的base64加密解密。其实base64只能算是一个编码算法,对数据内容进行编码来适合传输。虽然base64编码过后原文也变成不能看到的字符格式,但是这种方式很初级,很简单。 来源: oschina 链接: https://my.oschina.net/u/436370/blog/663910

在 Java 中如何进行 BASE64 编码和解码

谁说我不能喝 提交于 2020-02-29 11:10:34
BASE64 编码是一种常用的字符编码,在很多地方都会用到。JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和解码。下面是本人编的两个小的函数,分别用于 BASE64 的编码和解码: import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder; // 将 s 进行 BASE64 编码 publicstaticString getBASE64(String s) { if (s == null) returnnull; return (new sun.misc.BASE64Encoder()).encode(s.getBytes()); } // 将 BASE64 编码的字符串 s 进行解码 publicstaticString getFromBASE64(String s) { if (s == null) returnnull; BASE64Decoder decoder = new BASE64Decoder(); try { byte[] b = decoder.decodeBuffer(s); returnnewString(b); } catch (Exception e) { returnnull; } } 来源:

Base64 编解码

久未见 提交于 2020-02-29 10:20:56
测试Apache Base64和sun公司专有包BASE64Decoder、BASE64Encoder的编解码是否一致的代码: import java.util.Arrays; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * Base64 测试 * * @author Kevin * @date 2016-04-27 */ public class Base64Test { public static void main(String[] args) throws Exception { String base64DataStr = "+/whuang123FDKASLJFLDSA+/IJFIDSAFKLD"; String apacheBase64Data = Base64.encodeBase64String(base64DataStr.getBytes("UTF-8")); String sunBase64Data = new BASE64Encoder().encode(base64DataStr.getBytes("UTF-8")); // 测试Apache

xmpp学习笔记(三)

孤者浪人 提交于 2020-02-28 20:35:42
四:自动连接 从当前代码来看,如果有意外的断开,我们将无法获取信息。 所以要添加 XMPPReconnect xmppReconnect = [[ XMPPReconnect alloc ] init ]; [ xmppReconnect activate : self . xmppStream ]; 五:发送和接收消息 XEP-0136 布置好自己的聊天页面,包括用来展示聊天记录的UITableView,和发送消息的按钮。 发送消息代码如下: 接收消息: 当有消息进来后,调用 - ( void )xmppStream:( XMPPStream *)sender didReceiveMessage:( XMPPMessage *)message 方法 xmpp的框架自有消息存储的功能,用法与朋友列表类似。 发送消息后,查看文件夹,发现已经多了一个消息的数据库,所有的消息都存储在这里。 用类似朋友列表的方法取得了聊天信息的记录,包括时间、信息、接收人、发送或者接收信息的判断标志,信息到手,SM去吧! 依然是无法实时更新的问题,正在努力寻找合适的方法解决。 语音聊天 进行语音连天有两种方式:base64编码和Http http的方式是在消息中添加http的连接,如果用户要点击播放则去下载。 base64则是将音频文件转换成base64,按照发送文本信息的模式发送,接收到后,进行解码。

url-loader和file-loader的区别和使用

妖精的绣舞 提交于 2020-02-28 19:09:10
webpack是用JS写的,运行在node环境,所以默认webpack打包的时候只会处理JS之间的依赖关系!!! 如果你不相信,你可以创建如下类似的代码尝试在JS中导入图片 然后运行打包命令就发生报错现象(不要编写webpack.config.js就可以直接打包,这是webpack4新加的功能,但是入口文件必须是src/index.js文件必须要有) 提示我们需要提供相关的loader来处理图片类型的文件。 因为像 .png 这样的文件不是一个 JavaScript 模块,你需要配置 webpack 使用 file-loader 或者 url-loader 去合理地处理它们。 转换资源 URL 的好处是: file-loader 可以指定要复制和放置资源文件的位置,以及如何使用版本哈希命名以获得更好的缓存。此外,这意味着 你可以就近管理图片文件,可以使用相对路径而不用担心部署时 URL 的问题。使用正确的配置,webpack 将会在打包输出中自动重写文件路径为正确的 URL。 url-loader 允许你有条件地将文件转换为内联的 base-64 URL (当文件小于给定的阈值),这会减少小文件的 HTTP 请求数。如果文件大于该阈值,会自动的交给 file-loader 处理。 我们之前 require('./banner.jpg') 图片是为了得到图片的路径

RSA密匙Base64的encodeBase64URLSafeString引起对接问题

[亡魂溺海] 提交于 2020-02-28 14:51:13
一、背景 架构采用 RSA 非对称签名参数,摘要方式 SHA256withRSA ,密匙长度 2024 ,由 Java 端生成公钥私钥,然后提供公钥给 PHP ,公钥编码方式 Base64.encodeBase64URLSafeString . 二、存在问题 描述 在 Java 测试用例跑签名和验签都没问题,但是到了 PHP 爆 key parameter is not a valid public key ,百思不得其解,后来研究了下 encodeBase64URLSafeString 发现编码方式不一样 public static KeyMap generateRSAKey(int keySize) { KeyPair keyPair = SecureUtil.generateKeyPair(AsymmetricAlgorithm.RSA.getValue(), keySize); String privateKey = Base64.encodeBase64URLSafeString(keyPair.getPrivate().getEncoded()); String publicKey = Base64.encodeBase64URLSafeString(keyPair.getPublic().getEncoded()); return new KeyMap()

Android中Base64加密

天大地大妈咪最大 提交于 2020-02-28 11:58:49
最近集成第三方sdk时需要Basic Authentication认证,在用Base64加密做签权的时候用Base64.DEFAULT一直不能签权成功,最后用Base64.NO_WRAP成功了。 后来查了一下原因,原来使用Base64.DEFAULT当字符串过长(一般超过76)时会自动在中间加一个换行符,字符串最后也会加一个换行符,这样就导致和其他模块对接时结果不一致,于是签权失败。而Base64.NO_WRAP 这个参数意思是略去所有的换行符,因此签权成功。 因此Android端使用Base64加密解密时应使用Base64.NO_WRAP。 其他几种加密解密方式的含义: CRLF:这个参数看起来比较眼熟,它就是Win风格的换行符,意思就是使用CR LF这一对作为一行的结尾而不是Unix风格的LF DEFAULT:这个参数是默认,使用默认的方法来加密 NO_PADDING:这个参数是略去加密字符串最后的“=” NO_WRAP:这个参数意思是略去所有的换行符(设置后CRLF就没用了) URL_SAFE:这个参数意思是加密时不使用对URL和文件名有特殊意义的字符来作为加密字符,具体就是以-和_取代+和/ 来源: oschina 链接: https://my.oschina.net/u/661133/blog/1816897

用Java解码Base64数据

冷暖自知 提交于 2020-02-28 05:58:46
我有一个Base64编码的图像。 用Java解码的最佳方法是什么? 希望仅使用Sun Java 6附带的库。 #1楼 另一个较晚的答案,但我的基准测试表明, Jetty的Base64 编码器 实现 非常快。 不如 MiGBase64 快,但比 iHarder Base64 快。 import org.eclipse.jetty.util.B64Code; final String decoded = B64Code.decode(encoded, "UTF-8"); 我还做了一些基准测试: library | encode | decode ------------------+--------------+------------- 'MiGBase64' | 10146001.00 | 6426446.00 'Jetty B64Code' | 8846191.00 | 3101361.75 'iHarder Base64' | 3259590.50 | 2505280.00 'Commons-Codec' | 241318.04 | 255179.96 这些是每秒运行数,因此越高越好。 #2楼 如果对某人有用,这是我自己的实现: public class Base64Coder { // The line separator string of the operating

[Java 安全]加密算法

允我心安 提交于 2020-02-26 19:30:39
Base64 编码 算法简述 定义 Base64 内容传送编码是一种以任意 8 位字节序列组合的描述形式,这种形式不易被人直接识别。 Base64 是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的 ASCII 字符序列,常用在需用通过文本协议(比如 HTTP 和 SMTP )来传输二进制数据的情况下。 Base64 并不是加密解密算法 ,尽管我们有时也听到使用 Base64 来加密解密的说法,但这里所说的加密与解密实际是指编码( encode )和解码( decode )的过程,其变换是非常简单的,仅仅能够避免信息被直接识别。 原理 Base64 算法主要是将给定的字符以字符编码 ( 如 ASCII 码, UTF-8 码 ) 对应的十进制数为基准,做编码操作: (1) 将给定的字符串以字符为单位,转换为对应的字符编码。 (2) 将获得字符编码转换为二进制 (3) 对二进制码做分组转换,每 3 个字节为一组,转换为每 4 个 6 位二进制位一组(不足 6 位时低位补 0 )。这是一个分组变化的过程, 3 个 8 位二进制码和 4 个 6 位二进制码的长度都是 24 位( 3*8 = 4*6 = 24 )。 (4) 对获得的 4-6 二进制码补位,向 6 位二进制码添加 2 位高位 0 ,组成 4 个 8 位二进制码。 (5) 对获得的 4-8 二进制码转换为十进制码。