Sendmail/Postfix邮件系统与Base64编码

默认情况下,Red Hat Linux/CentOS安装程序会自动安装Cyrus-SASL认证包。否则运行

[root@red ~]#rpm -ivh /mnt/Server/cyrus-sasl-2.1.22-4.i386.rpm

安装以上认证包之后

[root@red ~]#saslauthd -v

当前可使用的密码验证方法有getwent、kerberos5、pam、rimap、shadow和ldap。

Base64是一种使用64基的位置计数法。它使用2的最大次方来代表仅可打印的ASCII 字符。这使它可用来作为电子邮件的传输编码。在Base64中的变量使用字符A-Z、a-z和0-9,这样共有62个字符,用来作为开始的64个数字,最后两个用来作为数字的符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。

浅谈Base64编码 http://www.5dmail.net/html/2004-1-30/200413084348.htm 摘录

为什么要使用Base64?
在设计这个编码的时候,我想设计人员最主要考虑了3个问题:
1.是否加密?
2.加密算法复杂程度和效率
3.如何处理传输?
   加密是肯定的,但是加密的目的不是让用户发送非常安全的Email。这种加密方式主要就是“防君子不防小人”。即达到一眼望去完全看不出内容即可。
基于这个目的加密算法的复杂程度和效率也就不能太大和太低。和上一个理由类似,MIME协议等用于发送Email的协议解决的是如何收发Email,而并不是如何安全的收发Email。因此算法的复杂程度要小,效率要高,否则因为发送Email而大量占用资源,路就有点走歪了。
   但是,如果是基于以上两点,那么我们使用最简单的恺撒法即可,为什么Base64看起来要比恺撒法复杂呢?这是因为在Email的传送过程中,由于历史原因,Email只被允许传送ASCII字符,即一个8位字节的低7位。因此,如果您发送了一封带有非ASCII字符(即字节的最高位是1)的Email通过有“历史问题”的网关时就可能会出现问题。网关可能会把最高位置为0!很明显,问题就这样产生了!因此,为了能够正常的传送Email,这个问题就必须考虑!所以,单单靠改变字母的位置的恺撒之类的方案也就不行了。关于这一点可以参考RFC2046。
基于以上的一些主要原因产生了Base64编码。

Base64编码/解码工具   http://www.mxcz.net/tools/base64.aspx

利用telnet进行SMTP的验证方法   http://www.cnblogs.com/rootq/articles/1320266.html

图解使用Telnet程序手工发送邮件 http://haolloyin.blog.51cto.com/1177454/351256

坎坷的过程 http://os.chinaunix.net/a2006/1114/958/000000958375.shtml


你可能感兴趣的:(linux,base64,smtp,sendmail,邮件系统)