应用中的分布式与加密

在服务器端采用分布式计算和分布式文件系统,分布式数据库已经渐渐成为主流应用场景.
采用分布式文件系统和分布式数据库的目标主要是解决物理存储空间的限制问题.其次是查询速度问题.当然数据容灾,负载均衡也是必要的选项.现在常见的分布式文件系统有MogileFS,amazon s3,Lustre,hadoop,win2003 DFS,redhat GFS, google fs
采用分布式计算的目标主要是负载均衡,其次是任务分解协作,在这一领域,SOA一直都在努力.Gearman也是一个不错的工具.
对于搜索引擎和其他数据挖掘的应用来说,分布式计算和分布式文件系统是合为一体的.不过这种模式并不标准.但性能应该是最佳的.
在分布式上,danga提供了许多优秀的解决工具。

加密

java cryptography architecture提供了一套相当完整的加密框架

SecureRandom 提供了生成基础的安全随机数。可供在其他加密场景中使用。

MessageDigest 提供了生成数据的加密摘要。一般是不能从摘要反向生成数据。这个功能也很基础,常用于密码的存储。


Signature 安全签名,使用公钥私钥对,用私钥和数据生成一个短小的签名,用公钥和数据及签名来验证数据是否可信。常用于license认证。

Cipher 加密/解密,可使用对称和非对称两种方式。一般均推荐采用非对称方式,即采用公钥进行加密,采用私钥进行解密。

几个公共概念:

1,Key:

Key 泛指密钥,公钥,私钥,各种形式的密钥均为此类,Key实例是不可见

KeySpec Key的可见版本,可通过相应的格式将Key进行物理化,常见的格式有X.509,PKCS#8

KeyFactory Key工具,可将密钥在Key和KeySpec 对象形式之间进行转换。KeyFactory不是用来生成Key的

KeyGenerator 生成密钥的工具,可根据随机数+长度或着+某种算法(如DES)来生成。

KeyPairGenerator 用来生成公钥、私钥对的工具。

KeyAgreement是一种组合多个Key的Key生成工具

KeyStore 证书存放的对象(可存储,方式常见有文件,数据库等),可存放多个Key和Certificate(证书),每一个均称为KeyEntry。每个Key可以设置一个密码,用于保护Key,证书就不必了,(因为证书里存放的是相应人的公钥和签名,可以自明)。
2,加密算法:


3 Certificate证书:

你可能感兴趣的:(architecture)