`
muyu
  • 浏览: 222725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

base64编码中的换行符

    博客分类:
  • ruby
阅读更多

先看加密代码:

Base64.decode64('subject')

 但是,如果字符串超过一定长度的时候,加密字符串中会带有换行符!这和PHP中的函数base64_encode()不同,php得出来的加密字符串没有换行符!

 

查了资料,这是base64的资料:

 

Base64是MIME邮件中常用的编码方式之一。它的主要思想是将输入的字符串或数据编码成只含有{'A'-'Z', 'a'-'z', '0'-'9', '+', '/'}这64个可打印字符的串,故称为“Base64”。Base64编码的方法是,将输入数据流每次取6 bit,用此6 bit的值(0-63)作为索引去查表,输出相应字符。这样,每3个字节将编码为4个字符(3×8 → 4×6);不满4个字符的以'='填充。

 

我在做uc_authcode加密解密函数的时候,需要在ruby和php中交互这个加密字符串。我采用了如下妥协方法:

str_encoded = str_encoded.gsub(/[^a-zA-Z0-9+\/]/, "")

 

 

 

 

 

分享到:
评论
1 楼 kingze 2010-07-23  
我也正需要用到 uc_authcode 你能把代码贡献出来吗?谢谢

相关推荐

    base64编码解码离线工具

    在原始的Base64编码中,为了保持每行字符数量不超过76个,通常会在编码结果中插入换行符,而在解码时需要正确识别并忽略这些换行符。这个工具能够处理这种情况,确保编码和解码的准确性。 Windows平台下的用户界面...

    pb10编码解码base64

    pb10调用base64.dll,实现将图片转换成base64编码,将base64编码转换成图片 函数声明 function long GetFileEncode64(ref string filename, ref string encode64)library "base64" alias for "GetFileEncode64;...

    base64编码工具

    为了确保在传输过程中不引入额外的换行符,通常在每76个字符后添加一个换行符,但这不是强制性的,具体取决于应用场景。在解码时,这些换行符会被忽略。 在"base64编码工具"中,用户可以有两种主要的操作模式:文件...

    BASE64编码方法

    - 最后,每76个字符添加一个换行符('\n'),以满足某些格式规范,比如电子邮件标准。 2. **解码过程**: - BASE64编码的字符串首先被分割成单独的6位块,每个块对应一个字符。 - 按照字符在字符表中的位置,...

    Base64与byte[]相互转换

    下面提供了一个完整的示例代码,用于演示如何在Java中实现Base64与byte[]之间的转换以及去除Base64中的换行符: ```java import java.util.Base64; import java.nio.charset.StandardCharsets; public class Base...

    Base64编码(VS2008MFC)

    同时,编码后的字符串可能包含换行符,这取决于具体实现,需要在使用时考虑是否需要去除这些换行符以满足特定格式要求。 在VS2008 MFC项目中,Base64编码通常应用于文件的读写、网络通信、数据存储等场景。例如,你...

    .NET 中实现 Base64 编码

    因为ASCII码有64个可打印字符(不包括换行符和控制字符),所以这种方法可以确保转换后的字符串只包含这些字符。如果原始数据不是3的倍数,会在末尾添加额外的零字节,然后用等号 (=) 补齐到4的倍数长度。 在.NET中...

    base64编码解码用于pb8pb9pb12.5等

    //修改了原网上解码没有按照标准76字符增加换行符的bug /* 标注base64编码方式 Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,...

    Java Base64编码和解码

    3. `getEncoder()` 和 `getDecoder()`:获取Base64编码器和解码器对象,这些对象还提供了更多的选项,如是否添加行分隔符、是否忽略非法字符等。 对于支持中文的Base64编码,需要注意的是,因为Base64编码是针对二...

    Delphi版的Base64互相转换函数

    在实际应用中,我们可能还需要处理一些特殊情况,如带有换行符的Base64字符串(标准Base64每76个字符后添加换行符)或去除末尾的等号。对于这种情况,可以通过自定义函数进行处理,比如检查并移除换行符,或者根据...

    自定义Base64编码

    - **二进制兼容性**:某些系统可能对某些字符有特殊处理,如换行符。自定义编码可以确保所有字符在目标环境中都能正确处理。 - **编码效率**:如果特定的字符组合在数据中频繁出现,可以通过调整编码表来减少编码后...

    VC++6.0使用base64编解码转图片

    1. 检查和处理Base64字符串:去除可能的换行符,并检查是否正确结束(末尾的填充字符)。 2. 将Base64字符转换回6位组:每个Base64字符对应一个6位组。 3. 重组二进制数据:将所有的6位组组合成原始的24位数据块。 4...

    Base64编码解码器

    Base64字符集通常包括大写字母A-Z、小写字母a-z、数字0-9以及"+"和"/",最后用"\n"作为换行符,但在网络传输中通常会用"="作为填充字符,而不是换行符。 在解码过程中,Base64编码的字符串被解析回其原始的二进制...

    Base64 编码程序源代码

    这个字符集通常包括大小写字母、数字以及"+"和"/",最后用"\n"作为换行符,但在URL安全的Base64编码中,"+"和"/"会被替换为"-"和"_"以避免URL中的特殊字符问题。 在KBase64.hpp和KBase64.cpp这两个文件中,很可能...

    LabVIEW实现Base64加密解密程序源码

    LabVIEW实现Base64加密解密程序源码,可以作为子VI...base 64编码将用户输入或二进制数据,打包成一种安全格式,将其作为HTTP首部字段的值发送出去,而无须担心其中包含会破坏HTTP分析程序的冒号、换行符或二进制值。

    Base64编码和解码器

    Base64编码基于标准的64个可打印字符,包括大小写字母、数字以及"+"和"/",并用"\n"作为每76个字符后的换行符。在解码时,这些字符会按照Base64规则还原为原始的二进制数据。 在C#中,Base64编码和解码可以通过...

    IOS图片BASE64编码解码

    这64个字符包括大小写字母、数字和两个特殊符号`+`和`/`,并且为了确保编码后的字符串在传输过程中不包含换行符,通常还会在末尾添加`=`作为填充。 ### 在iOS中实现图片的BASE64编码 在iOS中,我们可以使用`NSData...

    base64编码解码源码

    这种编码方式基于64个字符的字母数字表,包括大小写字母、数字以及"+"和"/",并用"\n"作为每76个字符后的换行符(在邮件系统中)。在解码时,这些字符会被转换回原始的二进制数据。 Base64编码的基本原理是将三个...

    Base64编码解码工具v1.6

    最后,为了防止字符集中的某些字符在传输过程中引起混淆,如换行符,通常会在编码结果的末尾加上一个等于号(=)作为填充。 这个工具提供了三种编码方式:ANSI、UTF-8和Unicode字符集。ANSI编码通常指的是本地系统...

    Android.Base64对图片进行编码和解码

    - **编码选项**:Base64.DEFAULT通常适用于大多数情况,但还可以选择Base64.URL_SAFE或Base64.NO_WRAP,分别用于URL安全和不添加换行符的编码。 - **解码异常**:确保Base64字符串的正确性,否则解码时可能会抛出`...

Global site tag (gtag.js) - Google Analytics