SHA-256加密简单实例(客户端、服务端)

该博文是参照其他博主内容经过亲测的产物,也是因为网上关于这类博文比较多,大多还类似,再此就不注明原创了,如有侵权,望主动联系,谢谢!!!

  这次选用SHA-256的原因也很简单,据说之前用的MD5被人爆破了,宁可信其有不可信其无。

  言归正传,总结两种方式,最终输出结果一致,下面看服务端代码:

package com.zxx.until;

import org.apache.commons.codec.binary.Hex;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class ads {

    public static void main(String[] args) {
        toSHA001("123456123456");
        toSHA002("123456123456");
    }

    private static void toSHA001(String text) {

        MessageDigest digest;
        try {
            digest = MessageDigest.getInstance("SHA-256");
            byte[] hash = digest.digest(text.getBytes("UTF-8"));
            String output = Hex.encodeHexString(hash);
            System.out.println(output);
        } catch (NoSuchAlgorithmException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


    public static String toSHA002(String str){
        MessageDigest messageDigest;
        String encodeStr = "";
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
            messageDigest.update(str.getBytes("UTF-8"));
            encodeStr = byte2Hex(messageDigest.digest());
            System.out.println(encodeStr);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return encodeStr;
    }
    private static String byte2Hex(byte[] bytes){
        StringBuffer stringBuffer = new StringBuffer();
        String temp = null;
        for (int i=0;i<bytes.length;i++){
            temp = Integer.toHexString(bytes[i] & 0xFF);
            if (temp.length()==1){
                //1得到一位的进行补0操作
                stringBuffer.append("0");
            }
            stringBuffer.append(temp);
        }
        return stringBuffer.toString();
    }
}

用到一个JAR包:

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
  <groupId>commons-codec</groupId>
  <artifactId>commons-codec</artifactId>
  <version>1.11</version>
</dependency>

客户端也有专门的 js 可以做:
我是 JS ,点我呀

代码就一句话:

<html>
<head></head>
<body>
    <script type="text/javascript" src="sha256_2.js"></script>
    <script type="text/javascript">

      document.write(sha256_digest("hello world"));

    </script> 
</body>
</html>

  最后多说一句,因为SHA-256和之前的MD5都属于散列算法加密技术,也就是说是不可逆的,作为开发人员只要记住加密规则然后再去对比密文即可,对于解密这种事情就交给那些大神去做就好了!!!

猜你喜欢

转载自blog.csdn.net/zheng_xiao_xin/article/details/80810580
今日推荐