回 帖 发 新 帖 刷新版面

主题:【转帖】RSA、SHA1这两个放在一块是什么意思呢?

原帖地址:[url=http://kjam.org/post/117/]http://kjam.org/post/117/[/url]

作者:KJ

RSA_SHA1 and OpenSocial
OAuth 技术作为 OpenSocial 采用的 Auth 方案. 其中签名技术有 HMAC_SHA1 , RSA_SHA1 和 Plain 三种 .
其中 RSA_SHA1 的方法. 初一看没觉得有什么. 
仔细想想, RSA是非对称密钥技术, SHA1是签名算法, 这两个放在一块是什么意思呢? 

整理思路, 理解如下: 
1. 当一个请求的数据到达到我的网站, 首先计算一下的请求中所有数据的SHA1值(除了签名以外) 
2. 用RSA算法中的公钥来解开签名数据, 得到解密后的签名值 
3. 比较两个值 

如果两值相等, 说明发送请求的主机持有合法私钥. 是来自SNS网站. 
(iGoogle 和 Orkut 当前使用这种签名技术, myspace 使用 HMAC_SHA1 签名) 

回到于python的相关内容, 标准库中有SHA1的lib可以使用, RSA没有, 不得不求助于PyCrypto. 
在GAE环境中, PyCrypto不能使用. 也不能将这个库整体上传, 那样太大了, 另外一个原因是它也包含很多 C ext. 
由于iGoogle给我们的公钥格式是PEM格式(一种文件格式, 学名叫X509), PyCrypto不能解码得到我们所需的公钥. 
解码这种格式需要 tlslite 这个 lib. 

最后, 花了点时间, 从两个lib中提取到了10个py文件, 不需要依赖 C ext, 可以在GAE上使用, 在这里下载 [url=http://kjam.org/medias/files/117/RSA_SHA1.zip]http://kjam.org/medias/files/117/RSA_SHA1.zip[/url].

回复列表 (共8个回复)

沙发

还是用HMAC_SHA1吧~~~

板凳

开发igoogle和orkut就必须用RSA_SHA1,写myspace就不得不用HMAC_SHA1,如果要开发兼容两者的opensocial的程序,你就都得掌握……

3 楼

已收藏,谢谢楼主分享.

4 楼

刚看了一下,写这个不用服务器,嗯,很简单方便。

5 楼

真没劲,又是说这些的!我以为有什么新鲜的呢

6 楼

其实,掌握这么多,到底能有多少用得上的?

7 楼

太专业了!楼主真牛,我刚开始入门,如果有不明白的还得多请教大哥啊!

8 楼

初来乍到,原来里面隐含了这么多高深的东西!看来还得不停的提高呀!楼主厉害

我来回复

您尚未登录,请登录后再回复。点此登录或注册