A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 7058|回复: 52

要下雨了,写了个编解码程序玩玩···

[复制链接]

精华
0
帖子
5066
威望
0 点
积分
5099 点
种子
0 点
注册时间
2011-9-15
最后登录
2013-11-27
 楼主| 发表于 2012-8-13 17:20  ·  四川 | 显示全部楼层 |阅读模式
我经常忘记银行卡密码···
所以一怒之下,把卡号和密码都写在了一个txt中···
保存在电脑上···
明文密码,感觉不妥···

所以刚刚写了一个编解码程序来完成数字的加密···
以下是源码,编码解码的规则可以自己制定···
我定的很简单,就是数字字母对应···
记得规则的话,解码方法可以不要···

public class Code {
       
        private static char [] NUM = {'0','1','2','3','4','5','6','7','8','9'};
       
        private static char [] LETTER = {'a','b','c','d','e','f','g','h','i','j','k'};

                private static int STEP = 1;

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

        /**
         * 编码
         *
         * @param pwd
         * @return
         * @createtime 2012-8-13 下午05:10:33
         * 最后修改时间 :
         * 更新记录:
         */
        public static String encode(String pwd){
                int length = pwd.length();
                char [] sA = pwd.toCharArray();
                char [] pA = new char [length];
               
                for (int i = 0; i < length; i++) {
                        char sC = sA[i];
                        int index = getIndex(sC, NUM);
                        pA[i] = LETTER[index + STEP ];
                }
                return new String(pA);
        }
       
        /**
         * 解码
         *
         * @param pwd
         * @return
         * @createtime 2012-8-13 下午05:10:40
         * 最后修改时间 :
         * 更新记录:
         */
        public static String decode(String pwd){
                int length = pwd.length();
                char [] sA = pwd.toCharArray();
                char [] pA = new char [length];
               
                for (int i = 0; i < length; i++) {
                        char sC = sA[i];
                        int index = getIndex(sC, LETTER);
                        pA[i] = NUM[index - STEP ];
                }
                return new String(pA);
        }
       
        private static int getIndex(char c, char[] array) {
                for (int i = 0; i < array.length; i++) {
                        if(c == array[i]){
                                return i;
                        }
                }
                return 0;
        }
}
其实规则都包含在最初声明的三个静态变量上···
无聊写着玩,自己图个省事,高手勿喷···

精华
0
帖子
1332
威望
0 点
积分
1373 点
种子
0 点
注册时间
2012-8-12
最后登录
2014-2-8
发表于 2012-8-13 17:27  ·  安徽 | 显示全部楼层
进来学习一下...                              

求败者

此处招租

精华
0
帖子
27185
威望
0 点
积分
28037 点
种子
7 点
注册时间
2005-4-21
最后登录
2024-2-11
发表于 2012-8-13 17:28  ·  上海 | 显示全部楼层
-.- 我已经复制下来了,温拿帝。。。。哼哼哼。。。。
该用户已被禁言

精华
0
帖子
4117
威望
0 点
积分
4186 点
种子
0 点
注册时间
2011-9-14
最后登录
2012-9-19
发表于 2012-8-13 17:29  ·  广东 | 显示全部楼层
LZ是編程高手啊……………………
xna

精华
0
帖子
3445
威望
0 点
积分
3497 点
种子
5 点
注册时间
2006-10-4
最后登录
2017-2-11
发表于 2012-8-13 17:29  ·  日本 | 显示全部楼层
瞎了。。。。。。。。。

征服者

怪蜀黍

精华
0
帖子
5763
威望
0 点
积分
6368 点
种子
0 点
注册时间
2005-8-2
最后登录
2013-9-18
发表于 2012-8-13 17:30  ·  北京 | 显示全部楼层
private static int STEP = 1赢了

精华
0
帖子
1297
威望
0 点
积分
1294 点
种子
0 点
注册时间
2012-5-31
最后登录
2012-11-26
发表于 2012-8-13 17:33  ·  广东 | 显示全部楼层
好的,已经记住了……

精华
0
帖子
5066
威望
0 点
积分
5099 点
种子
0 点
注册时间
2011-9-15
最后登录
2013-11-27
 楼主| 发表于 2012-8-13 17:33  ·  四川 | 显示全部楼层
卧槽···
应该是private static int STEP = LETTER.length - NUM.length;···
6F高手,一眼就看出了问题所在···

征服者

怪蜀黍

精华
0
帖子
5763
威望
0 点
积分
6368 点
种子
0 点
注册时间
2005-8-2
最后登录
2013-9-18
发表于 2012-8-13 17:35  ·  北京 | 显示全部楼层
しんざんもの 发表于 2012-8-13 17:33
卧槽···
应该是private static int STEP = LETTER.length - NUM.length;···
6F高手,一眼就看出了问 ...

其实只要NUM和LETTER是一样长的,就不用STEP了,这样一组其实就是二组的自然下标
该用户已被禁言

流放者(禁止发言)

表惹偶会变身的呦。。。。。。

精华
0
帖子
12741
威望
0 点
积分
12958 点
种子
5 点
注册时间
2006-7-15
最后登录
2020-1-5
发表于 2012-8-13 17:37  ·  上海 | 显示全部楼层
卧槽!对温拿帝有了全新的认识!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-9-23 07:43 , Processed in 0.204476 second(s), 17 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部