天天看點

安卓逆向 -- 算法基礎(SHA)

一、SHA算法

SHA由美國标準與技術研究所(NIST)設計并于1993年發表,該版本稱為SHA-0,由于很快被發現存在安全隐患,1995年釋出了SHA-1。2002年,NIST分别釋出了SHA-256、SHA-384、SHA-512,這些算法統稱SHA-2。2008年又新增了SHA-224。由于SHA-1已經不太安全,目前SHA-2各版本已成為主流。

二、常用的SHA-256算法

1、SHA-256:32個位元組、64個字元、256個bit

2、使用方式和MD5方法一樣,隻是傳入算法名不一樣

3、java版

String bs= "逆向有你a";              MessageDigest shasf=MessageDigest.getInstance("SHA-256");//我要用md5算法              shasf.update(bs.getBytes());//我要加密的資料              byte[] ressha = shasf.digest();//給我加密              System.out.println("SHA-256加密(位元組):"+Arrays.toString(ressha));              System.out.println("SHA-256加密(字元串):"+bytes2HexString(ressha));              MessageDigest shasf1 = MessageDigest.getInstance("sha-256");              shasf1.update("逆向".getBytes(StandardCharsets.UTF_8));              shasf1.update("有你".getBytes(StandardCharsets.UTF_8));              byte[] ressha1 = shasf1.digest("a".getBytes(StandardCharsets.UTF_8));              System.out.println(bytes2HexString(ressha1));              運作結果:              SHA-256加密(位元組):[-55, 52, -50, 36, -123, 97, 5, 78, -89, -81, -84, -15, -22, 80, 62, -1, -65, -124, -122, -49, -56, -56, 23, -2, 97, 99, -26, 71, 88, -111, 103, -88]              SHA-256加密(字元串):C934CE248561054EA7AFACF1EA503EFFBF8486CFC8C817FE6163E647589167A8              C934CE248561054EA7AFACF1EA503EFFBF8486CFC8C817FE6163E647589167A8
           

4、JS版,同樣需要CryptoJS加密庫配合

var CryptoJS=module.exports;              function test()              {              return CryptoJS.SHA256("逆向有你a").toString().toUpperCase();              }              console.log(test());
           

禁止非法,後果自負

歡迎關注公衆号:逆向有你

歡迎關注視訊号:之乎者也吧

歡迎報名安卓逆向教育訓練,報名微信(QQ):335158573

教育訓練課程内容

安卓逆向 -- 算法基礎(SHA)
安卓逆向 -- 算法基礎(SHA)