某些编程语言(如Java和C#)在其标准库中包含加密包.其他如Python和Ruby让你下载第三方模块来进行强加密.我认为这是出于法律原因; 也许Sun Microsystems有足够的律师,他们不怕被起诉,而Guido van Rossum感觉更脆弱.
但法律对此有何实际说法呢?在这一点上,如果开源作者在他们的编程语言的标准库中包含强加密,他们会有什么可担心的吗?如果是这样,那么他们为什么不呢?如果没有,那么Sun和微软如何逃脱它.
有两个问题:加密软件的输入和加密软件的导出.
一些国家(中国,俄罗斯,伊朗,伊拉克,缅甸等)限制其公民使用密码术.将加密软件导入这些国家/地区是违法的.
要在JDK中启用无限制的加密强度,您必须下载新的策略文件.如果您所在的国家/地区不允许输入加密,则该软件许可证不允许您使用该软件.这被称为"无限强度管辖政策",下面我将其部分包含在README.txt中.
其他国家/地区,如美国,不希望将加密软件导出到Axis of Evil.因此,将加密软件导出到这些国家可能是违法的.
美国的出口限制已大幅减少,可能是因为认识到将加密保留在敌人手中是徒劳的,或者可能是为了鼓励使用受到国家安全局影响的加密.但是,它们并没有完全消失.我不认为该软件可以被恐怖分子许可.
JCE for JDK 5.0已通过美国出口审核流程.JCE框架以及标准配置的SunJCE提供程序是可导出的.
JCE体系结构允许通过管辖区策略文件配置灵活的加密强度.由于某些国家/地区的进口限制,随JDK 5.0软件一起分发的管辖区政策文件对可用的加密强度具有内置限制.此下载包中的管辖区策略文件(包括此README文件的包)不包含对加密强度的限制.这适用于大多数国家.框架供应商可以创建包含管辖区策略文件的下载包,这些文件指定适用于政府要求限制的国家/地区的加密限制.这些国家/地区的用户可以下载相应的捆绑包,JCE框架将强制执行指定的限制.
建议您咨询您的出口/进口控制律师或律师,以确定具体要求.