Java Web_几种加密算法

本文详细阐述了如何改进加密身份证程序,解决数组长度固定导致的错误。通过调整程序逻辑,使得输入不同长度的数据后,加密后的数据长度符合特定规律。包括将输入数据按8的倍数划分,以及十六进制字符串转2进制的操作。同时,介绍了通过邀请注册新浪APP获取额外资源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@lhwill

/**

* 非常感谢您的评论,发现程序中的不足。就这个问题我将程序做了以下局部改动。

* 之所以会出现您说的加密身份证报错的问题,是因为之前的程序将数组的长度写死了,

* 而非字符串和数字不同的问题。

* 当输入一定长度的数据时,会发现输入数据的长度和加密后数据的长度之间是有一定规律的。

* 输入0-7位数据,加密后为16位;输入8-15位加密后为32位;输入16-23位加密后为48位。。。

* 将输入数据按8的倍数的长度范围来划分。

* 加密后数据的长度会根据输入数据的长度而确定,为16的倍数。

* 得到的十六进制byte数组(byte[] ret)的大小,根据输入数据的长度/加密后数据的长度而变化,为8的倍数。

*/

/**

* 十六进制字符串转化为2进制

*

* @param hex

* @return

*/

public byte[] hex2byte(string hex) {

//根据输入数据的长度决定加密后数据的长度。

/**

* input:[8(x-1),8x)---output:16x---param:8x

* eg:

* input:0-7位---output:16位---param:8

* input:8-15位---output:32位---param:16

* input:16-23位---output:48位---param:24

*/

int x=hex.length()/16;

byte[] ret = new byte[8*x];

byte[] tmp = hex.getbytes();

for (int i = 0; i


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值