Android 中数据加密 ---- SHA加密

前言:

SHA 家族有SHA-1、SHA-224、SHA-256、SHA-384、SHA-512,算法详细可以看:

数据加密 ---- SHA 加密

数据加密 ---- SHA-2 加密

在Android 中同MD5 的使用,都是使用的MesssageDigest 类,只是算法的名称不同,本文用SHA-1为例,其他的几种都可以用同样的方法。

 

更多的加密可以看:

数据加密 ---- 总篇

Android 中数据加密 ---- 异或加密

Android 中数据加密 ---- AES加密

Android 中数据加密 ---- DES加密

Android 中数据加密 ---- 3DES加密

Android 中数据加密 ---- MD5加密

Android 中数据加密 ---- RSA加密

 

实例:

如 MD5加密 所列,将Message Digest 的算法用一个公共类 MessageDigestHelper,详细看 MD5加密 。

本文这边重新多加了一个类SHA1Encryption:

public class SHA1Encryption extends MessageDigestEncryption {
    private static final String ALGORITHM = "SHA-1";

    public SHA1Encryption() {
        this(ALGORITHM);
    }

    public SHA1Encryption(String alg) {
        super(alg);
    }

}

 

Activity 的button 部分如下:

   private void testEncryptionSHA1() {
        Button sha1 = (Button) findViewById(R.id.encrypt_sha1);
        sha1.setOnClickListener(this);
    }

    private void sha1Encryption() {
        mOperationTitle.setText(getString(R.string.encrypt_sha1));

        {
            String str1 = "";
            String result = "";
            SHA1Encryption encryption = new SHA1Encryption();
            result = encryption.getStringMD(str1);
            Log.d(TAG, "==== sha1: " + result);
            
            String strSource = "hliuhiufhliuhsd;jfijso;goshgosjogijsgo;j";
            mBeforeOperation.setText(getString(R.string.before_operation, strSource));

            result = encryption.getStringMD(strSource);
            mAfterOperation.setText(getString(R.string.after_operation, result));
        }

//        if (mFileEncryption != null) {
//            Log.d(TAG, "==== test file, encryption with sha1 ...");
//            String filePath = "/storage/emulated/0/hehe.png";
//            mFileEncryption.setAlgorithm(FileEncryption.ALG_MODE_SHA_1);
//            mFileEncryption.start(FileEncryption.MODE_ENCRYPT, "", filePath);
//            Log.d(TAG, "==== test file, encryption end");
//        }
    }

做了两手准备验证,一个是通过log 打印出空字符串对应的md5值,另一个是非空的字符串sha-1值显示到屏幕上。

具体UI 上的逻辑可以根据实际需要实现,不过多的做解释。

 

结果:

12-13 00:19:35.654  2305  2305 D TestEncryptionActivity: ==== sha1: da39a3ee5e6b4b0d3255bfef95601890afd80709

这两个结论可以通过PC 上一些工具验证,结果是完全一样的。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值