`

java实现对字符串的加密与解密

    博客分类:
  • java
阅读更多

加密类如下:

package com.test;
import java.io.*;

/**
 * 加密与解密
 */

public class Encipher{
	
	// 加密
    public static String EncodePasswd(String strPasswd){

        String strEncodePasswd = new String("");

        int i;

        int n;

        char code;

        String des = new String();

        String strKey = new String();

        if((strPasswd == null) || strPasswd.length() == 0){

            strEncodePasswd = "";

            return strEncodePasswd;

        }

        strKey = EncipherConst.m_strKey1 + EncipherConst.m_strKey2 + EncipherConst.m_strKey3 + EncipherConst.m_strKey4 + EncipherConst.m_strKey5 + EncipherConst.m_strKey6;

        while(strPasswd.length() < 8){

            strPasswd = strPasswd + (char)1;

        }

        des = "";

        for(n = 0; n <= strPasswd.length() - 1; n++){

            while(true){

                code = (char)Math.rint(Math.random() * 100);

                while((code > 0) && (((code ^ strPasswd.charAt(n)) < 0) || ((code ^ strPasswd.charAt(n)) > 90))){

                    code = (char)((int)code - 1);

                }

                char mid = 0;

                int flag;

                flag = code ^ strPasswd.charAt(n);

                if(flag > 93){

                    mid = 0;

                } else{

                    mid = strKey.charAt(flag); //Asc(Mid(strKey, (code Xor Asc(Mid(strPasswd, n, 1))) + 1, 1))

                }

                if((code > 35) & (code < 122) & (code != 124) & (code != 39) & (code != 44) & (mid != 124) & (mid != 39) & (mid != 44)){

                    break;

                }

                //确保生成的字符是可见字符并且在SQL语句中有效

            }

            char temp = 0;

            temp = strKey.charAt(code ^ strPasswd.charAt(n));

            des = des + (char)code + temp;

        }

        strEncodePasswd = des;

        return strEncodePasswd;

    }
    
    // 把经过加密的文件解密
    public static String DecodePasswd(String varCode){

        int n;

        String des = new String();

        String strKey = new String();

        if((varCode == null) || (varCode.length() == 0)){

            return "";

        }

        strKey = EncipherConst.m_strKey1 + EncipherConst.m_strKey2 + EncipherConst.m_strKey3 + EncipherConst.m_strKey4 + EncipherConst.m_strKey5 + EncipherConst.m_strKey6;

        if(varCode.length() % 2 == 1){

            varCode = varCode + "?";

        }

        des = "";

        for(n = 0; n <= varCode.length() / 2 - 1; n++){

            char b;

            b = varCode.charAt(n * 2);

            int a;

            a = (int)strKey.indexOf(varCode.charAt(n * 2 + 1));

            des = des + (char)((int)b ^ a);

        }

        n = des.indexOf(1);

        if(n > 0){

            return des.substring(0, n);

        } else{

            return des;

        }

    }
    
    static class EncipherConst{
        public final static String m_strKey1 = "zxcvbnm,./asdfg";

        public final static String m_strKeya = "cjk;";

        public final static String m_strKey2 = "hjkl;'qwertyuiop";

        public final static String m_strKeyb = "cai2";

        public final static String m_strKey3 = "[]\\1234567890-";

        public final static String m_strKeyc = "%^@#";

        public final static String m_strKey4 = "=` ZXCVBNM<>?:LKJ";

        public final static String m_strKeyd = "*(N";

        public final static String m_strKey5 = "HGFDSAQWERTYUI";

        public final static String m_strKeye = "%^HJ";

        public final static String m_strKey6 = "OP{}|+_)(*&^%$#@!~";

    }
    public static void  main(String[] args) throws Exception{

    	  String a = EncodePasswd("abc") ;
          System.out.println(a); // 输出加密后的字符串
          System.out.println(DecodePasswd(a));   // 把加密字符串解密后输出
      }
}

 

 

 

 

 

分享到:
评论
1 楼 xhAndroid 2013-08-21  
原理是什么?求解释下

相关推荐

    PB字符串加密、解密函数

    在IT行业中,字符串加密与解密是信息安全领域的重要组成部分,主要目的是保护数据的隐私和安全性。PowerBuilder(PB)是一种流行的编程环境,尤其在开发数据库应用程序时被广泛使用。在这个背景下,PB字符串加密和...

    java 字符串加密解密

    在IT行业中,字符串加密解密是信息安全领域的重要组成部分,它涉及到数据保护、用户隐私和网络安全。本项目提供了四种常见的加密解密算法的Java实现:BASE64、AES、DES和MD5。接下来,我们将深入探讨这四种算法及其...

    Java对字符串进行加密解密

    Java字符串加密解密是指使用Java语言对字符串进行加密和解密操作的过程。在这个过程中,我们可以使用异或运算符来对字符串进行加密和解密。下面我们将详细介绍Java字符串加密解密的实现过程和原理。 实现过程: ...

    java Base64 字符串加密与解密

    在Java中,Base64的加密和解密操作可以通过Java 8引入的`java.util.Base64`类来实现。以下是简单的使用示例: ```java import java.util.Base64; public class Base64Example { public static void main(String[]...

    java实现对字符串的加密与解密.doc

    Java 实现字符串加密与解密的关键在于设计一个安全且可逆的算法。在这个示例中,我们看到一个简单的加密和解密方法,它们都定义在名为 `Encipher` 的类中。这个类主要使用了异或操作(XOR)以及一个预定义的密钥字符...

    字符串的加密解密操作实现

    本篇将深入探讨字符串加密解密的实现方法,并以实际应用为例进行解析。 1. **字符串加密原理与方法** - **对称加密**:如DES(Data Encryption Standard)、3DES(Triple DES)、AES(Advanced Encryption ...

    java_code.rar_java 加密解密_java_code.rar_加密解密_字符串 加密 解密_对 字符串 加密 解密

    总结来说,这个“java_code.rar”项目展示了Java中基于随机数和按位运算的字符串加密解密方法,对于学习和理解Java加密技术,特别是对字符串的处理,具有很好的参考价值。通过深入研究提供的代码,我们可以学习如何...

    java字符串-用户名和密码-加密解密

    Java 字符串加密与解密 #### 1.1 概述 在Java中,对字符串进行加密和解密是一种常见的安全措施,特别是在处理敏感数据如用户名和密码时。通过加密技术可以保护这些数据免受未经授权的访问。 #### 1.2 使用场景 - ...

    Java中对字符串进行加密和解密

    ### Java中对字符串进行加密和解密的...通过对上述内容的学习,我们可以了解到Java中实现字符串加密和解密的基本方法。通过合理的算法选择和正确的实现方式,可以在很大程度上提高数据的安全性,保护敏感信息免受攻击。

    java字符串加密解密

    总的来说,Java字符串加密解密涉及到多个层面的知识,包括加密算法、密钥管理、安全协议等。理解和熟练掌握这些技术对于保障网络安全至关重要。在实际开发中,还需要关注加密算法的版本限制、密钥的安全存储以及法律...

    JAVA中字符串的加密与解密

    JAVA中字符串的加密与解密

    Java实现的RSA加密解密算法示例

    本文详细介绍了Java实现的RSA加密解密算法,包括密钥对生成、公钥和私钥的使用、加密和解密、密钥文件的生成等知识点。这些知识点对于Java开发者来说非常重要,可以帮助他们更好地理解和实现RSA加密解密算法。

    JAVA可逆带秘钥字符串加密算法

    本文将深入探讨“JAVA可逆带秘钥字符串加密算法”,这是一种允许数据在加密后仍能通过正确的密钥解密回原始形式的加密技术。 在Java中,最常见的可逆加密算法包括DES(Data Encryption Standard)、3DES(Triple ...

    加密解密字符串的例子

    这个压缩包文件中的"加密解密字符串的例子"很可能是提供了一个关于如何在编程中实现字符串加密和解密的示例。接下来,我们将深入探讨加密解密的基础知识以及可能涉及的技术。 1. 加密解密原理: 加密是将明文(可...

    Java对字符串加密解密

    DES(Data Encryption Standard)是发明最早的最广泛使用的分组对称加密算法。DES算法的入口参数有三个:Key、Data、...Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的工作方式,有两种:加密或解密。

    字符串加密解密

    8. **字符串加密解密案例**:在提供的压缩包文件“字符串加密解密案例”中,可能包含具体的编程实现,如Python的cryptography库、Java的Cipher类或者JavaScript的crypto模块等,展示了如何在实际项目中应用上述理论...

    字符串加密解密jar包

    "字符串加密解密jar包"是一个专门为处理字符串加密和解密任务而设计的Java应用程序集(jar包)。它允许用户对给定的字符串进行加密和解密操作,确保数据在存储或传输过程中的安全性。以下是对这个jar包及其相关知识...

    java实现的RC4加密解密算法示例

    "java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...

    base64、DES、AES、SHA-1、MD5 字符串加密和解密 编码和解码 大全

    这个进行字符串加密 和解密 , 编码和 解码 包括(base64、DES、AES、SHA-1、MD5 ) ,都是亲测的,保证可用 这个进行字符串加密 和解密 , 编码和 解码 包括(base64、DES、AES、SHA-1、MD5 ) ,都是亲测的,保证...

    用Java编写的一个字符串加密程序

    这是一个用Java编写的简易字符串加密文件,可以对你输入的任何字符串实现加密解密功能

Global site tag (gtag.js) - Google Analytics