键盘明文密文转换笔记

本文介绍了在Android中如何实现键盘输入的明文与密文即时转换效果,通过TextView的append方法与TransformationMethod的结合使用,实现了一秒延迟显示密文的特色功能。
摘要由CSDN通过智能技术生成
1.明文、密文显示的两种方式
 //第一种方式
        if (mVisiblePass) {
            setInputType(InputType.TYPE_CLASS_TEXT);
        } else {
            setInputType(InputType.TYPE_CLASS_TEXT
                    | InputType.TYPE_TEXT_VARIATION_PASSWORD);
        }

         //第二种方式
          setInputType(InputType.TYPE_CLASS_TEXT);//首先设置为文本类型,如果设置的是密码类型,会有问题
        if (mVisiblePass) {

            setTransformationMethod(HideReturnsTransformationMethod.getInstance());
        } else {

            setTransformationMethod(PasswordTransformationMethod.getInstance());
        }

2.在密文模式下。TextView的append方法会触发先显示明文,过一秒后显示密文的效果
3,TransformationMethod是一种edittext的文本转换器。
参考http://blog.csdn.net/rainy_day_2014/article/details/51422740

Java可以使用JCE(Java Cryptography Extension)提供的API实现DES加密解密算法,以下是一个简单的示例: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import java.util.Scanner; public class DesDemo { public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); System.out.print("请输入明文:"); String plainText = scanner.nextLine(); System.out.print("请输入密钥(8个字符):"); String key = scanner.nextLine(); byte[] encrypted = encrypt(plainText, key); System.out.println("加密后的密文:" + new String(encrypted)); String decrypted = decrypt(encrypted, key); System.out.println("解密后的明文:" + decrypted); } private static byte[] encrypt(String plainText, String key) throws Exception { // 生成密钥 KeyGenerator keyGenerator = KeyGenerator.getInstance("DES"); keyGenerator.init(56); SecretKey secretKey = keyGenerator.generateKey(); // 加密 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encrypted = cipher.doFinal(plainText.getBytes()); return encrypted; } private static String decrypt(byte[] encrypted, String key) throws Exception { // 生成密钥 KeyGenerator keyGenerator = KeyGenerator.getInstance("DES"); keyGenerator.init(56); SecretKey secretKey = keyGenerator.generateKey(); // 解密 Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] decrypted = cipher.doFinal(encrypted); return new String(decrypted); } } ``` 在上述代码中,我们通过 `KeyGenerator` 生成了一个 DES 密钥,并使用 `Cipher` 对象实现了 DES 加密和解密。注意,为了确保安全性,DES 的密钥长度必须为 8 个字符,否则会抛出异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值