在做单点登陆过程中遇到的问题

首先要学习RSA算法,百度百科

http://baike.baidu.com/link?url=NoLxCStbrPJzTWXK7btu9Xbt8YLCLXXdc39GopP8A_6ImzrhzbDxLkzNDiZwO7xrbJPOorSwMqIyG87XnG4XpgR2KniYu0cJgWxzyv0LwJQzzATYstuTHFqNx3GhkW-V


RSA 公钥 加密算法是1977年由 罗纳德·李维斯特(Ron Rivest)、 阿迪·萨莫尔(Adi Shamir)和 伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥 数据加密标准。
今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在 分布式计算和 量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。


什么是两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,这句话怎么理解呢?


其中涉及到了素数,素数介绍在百度百科

http://baike.baidu.com/link?url=_FKgb6ySUvZRZYExSKXQYq_ORjD4N8uuY77hY8cTczHPu2AUYiwn4jmYIrYu9SC-hUIbbr3rsvuWUq2qp62ZqHCGf8N5KQiTuFEPJJYSETEhYRanibG4lgYxcQp5LBmpdVTUpu3hToZvIhhX-mbKua


Hex.decodeHex

其中遇到这个方法,hex查看了一下是16进制的缩写。


SECTION 03 Hex 编解码

通常我们会对于 URL Form GET 时候进行 16 进位编码, 将 byte[] 转成 char[],


 package com.softleader.sample.codec; import org.apache.commons.codec.binary.Hex; import org.apache.commons.codec.*; public class HexTest {     public static void main(String args[]) {         Hex hex = new Hex();         String str = "中文";         char[] enbytes = null;         String encodeStr = null;         byte[] debytes = null;         String decodeStr = null;         try {             enbytes = hex.encodeHex(str.getBytes());             encodeStr = new String(enbytes);             debytes = hex.decodeHex(enbytes);             decodeStr = new String(debytes);         } catch (Exception ex) {             ;         }         System.out.println("编码前:"+str);         System.out.println("编码后:"+encodeStr);         System.out.println("解码后:"+decodeStr);     } }  


cmd>java com.softleader.sample.codec.HexTest
执行结果
编码前:中文
编码后:a4a4a4e5
解码后:中文

这个函数的意思就是将char[]转换成byte[]


http://commons.apache.org/proper/commons-codec/

这是commons-codec的apache的官网,看了一下例子,感觉是用来处理各种编码的。

找到了一个网址:

http://www.zihou.me/html/2011/03/23/2983.html

这里有一些用法。



MD5解释: http://baike.baidu.com/link?url=5iicJNZRqk_Kd7jzjSyLctcomByowmoWqltrwRUQjMBzOfmR99OgnWcqDW-DFvIkh3-BA9kSavt3h_FVHa9q1_
Message Digest Algorithm MD5(中文名为 消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。

digest:vt消化整理。n摘要。
Algorithm:算法

在研究md5代码的时候,遇到了&0x0f

你可能感兴趣的:(在做单点登陆过程中遇到的问题)