LDAP-SHA加密与解析
来源:互联网 发布:2017云计算的上市公司 编辑:程序博客网 时间:2024/06/06 21:39
1. 对字段进行SHA加密
/* SHA加密 生成40位SHA码 * @param 待加密字符串 * @return 返回40位SHA码 */ public static String shaEncode(String inStr) throws Exception { MessageDigest sha = null; try { sha = MessageDigest.getInstance("SHA"); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); return ""; } byte[] byteArray = inStr.getBytes("UTF-8"); byte[] md5Bytes = sha.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { int val = ((int) md5Bytes[i]) & 0xff; if (val < 16) { hexValue.append("0"); } hexValue.append(Integer.toHexString(val)); } return hexValue.toString(); }
2.原始密码与LDAP-SHA加密字段的比较
public static boolean verifySHA(String ldappw, String inputpw)throws NoSuchAlgorithmException {// MessageDigest 提供了消息摘要算法,如 MD5 或 SHA,的功能,这里LDAP使用的是SHA-1MessageDigest md = MessageDigest.getInstance("SHA");// 取出加密字符ldappw = ldappw.substring(5);// 解码BASE64byte[] ldappwbyte = Base64.decode(ldappw);byte[] shacode;byte[] salt;// 前20位是SHA-1加密段,20位后是最初加密时的随机明文if (ldappwbyte.length <= 20) {shacode = ldappwbyte;salt = new byte[0];} else {shacode = new byte[20];salt = new byte[ldappwbyte.length - 20];System.arraycopy(ldappwbyte, 0, shacode, 0, 20);System.arraycopy(ldappwbyte, 20, salt, 0, salt.length);}// 把用户输入的密码添加到摘要计算信息md.update(inputpw.getBytes());// 把随机明文添加到摘要计算信息md.update(salt);// 按SSHA把当前用户密码进行计算byte[] inputpwbyte = md.digest();// 返回校验结果return MessageDigest.isEqual(shacode, inputpwbyte);}
0 0
- LDAP-SHA加密与解析
- MD5加密与SHA加密
- PHP实现LDAP中SHA,SSHA,MD5加密方法
- JAVA加密技术-----MD5 与SHA 加密
- SHA加密
- SHA 加密
- SHA-1 加密(与MD5的区别)
- MD5与SHA-512加密C#实现
- RSA加密与SHA签名用法详解
- SHA加密与MD5加密的区别与选择
- BASE64,MD5,SHA,HMAC加密与解密算法(java)
- 数据的加密与解密,MD5,MD2,SHA
- DES、RSA、MD5、SHA、随机生成加密与解密
- 【LDAP】LDAP常用命令解析
- MD5/SHA 加密处理
- SHA-256 加密
- Android SHA加密实现
- sha-2加密
- 【Cocos2dx】新建场景、场景的切换、设置启动场景与菜单的新建
- 开启JS学习之路
- 如何通过jquery禁止form表单提交
- 序列参数集层(SPS) & 图像参数集语义
- CDS集成Android SDK
- LDAP-SHA加密与解析
- android contentResolver与contentProvider如何关联在一起的
- 数据列存储和行存储
- linux驱动之定时任务timer,队列queue,小任务tasklet机制及用法
- Foundation框架—错误接收与异常处理
- cocos2dx 3.x bindings-generator(Part two)
- sql 存储过程 入门级 练习
- Linux做一个功能完备的路由器
- Android持续优化 - 提高流畅度