社区
Java SE
帖子详情
Java Mac 加密方法
kingo_liang
2008-03-30 06:52:48
想要一个Java Mac加密和方法
支持Ansi X9.9的Mac加密
有方法提供或者有解决方案提供者重赏:)
...全文
1024
5
打赏
收藏
Java Mac 加密方法
想要一个Java Mac加密和方法 支持Ansi X9.9的Mac加密 有方法提供或者有解决方案提供者重赏:)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gjgj3368
2008-04-03
打赏
举报
回复
学习
xql80329
2008-04-02
打赏
举报
回复
百度 一下 网上N多
chen09
2008-04-02
打赏
举报
回复
csdn别处c&p来的C代码,小改一下就成。
void xor(unsigned char *input1,unsigned char *input2,unsigned char *output,int len)
{
while (len) {
*output++=*input1++^*input2++;
len--;
}
}
/*
*@brief: 根据输入数据计算MAC,初始IV向量默认为"\x00\x00\x00\x00\x00\x00\x00\x00"
*@param: sMacKey 密钥
*@param: pInData 输入数据
*@param: iInLen 输入数据长度
*@param: pRetData 计算出来的MAC
*@调用自定义xor和des函数
*/
void MacArithmetic(unsigned char *sMacKey,unsigned char *pInData,int iInLen,unsigned char *pRetData)
{
//MAC算法:
//将字符串pInata分为8字节为单位的数据块,不足补\x00,分别标号为D1,D2,D3,...,Dn
//设置初始向量E0="\x00\x00\x00\x00\x00\x00\x00\x00"
//将E0^D1 —---->E1(E0,D1异或的后结果经des加密得到E1)
//将E1^D2 ----->E2
//如此类推,知道得出En结束,En即是计算出来的MAC
unsigned char sUpData[512];
unsigned char sData[20];
unsigned char sXorData[20];
unsigned char sDesData[20];
int i,n,iNum;
memset(sUpData,0,sizeof(sUpData));
memset(sData,0,sizeof(sData));
memset(sXorData,0,sizeof(sXorData));
memset(sDesData,0,sizeof(sDesData));
//补全要加密数据成8倍数到sUpData,不足补\x00
memcpy(sUpData,pInData,iInLen);
iNum = iInLen%8;
if (iNum == 0)
n=iInLen/8;
else {
n=iInLen/8+1;
memcpy(sUpData+iInLen,"\x00\x00\x00\x00\x00\x00\x00\x00",8-iNum);
}
printf("n=%d\nsUpData=[%s]\n",n,sUpData);
//轮循异或,加密
memcpy(sDesData,"\x00\x00\x00\x00\x00\x00\x00\x00",8); //初始向量赋给sDesData
for(i=0;i<n;i++)
{
//拷贝sUpData中下一个8位到sData
memcpy(sData,sUpData+i*8,8);
xor(sDesData,sData,sXorData,8); //异或
Des(sXorData,sDesData,sMacKey,1); //des加密
}
memcpy(pRetData,sDesData,8);
return ;
}
xlongbuilder
2008-03-31
打赏
举报
回复
[Quote=引用 1 楼 lbfhappy 的回复:]
还是看API去吧,很详细的
[/Quote]
千里冰封820
2008-03-30
打赏
举报
回复
还是看API去吧,很详细的
基于
JAVA
的
加密
算法(包括10种
加密
技术)
Java
加密
技术(一) 关键字:
java
加密
基础, base64, md5,
mac
, sha, 单向
加密
。。。。。。。。。。。。。。
MAC
加密
算法(银联标准)
将异或运算后的最后8个字节(RESULT BLOCK)转换成16个HEXDECIMAL,取前8个字节用mkey1,DES
加密
,将
加密
后的结果与后8 个字节异或,用异或的结果TEMP BLOCK 再进行一次单倍长密钥算法运算,将运算后的结果(ENC BLOCK2...
Java
数据
加密
Cipher介绍
数字
加密
是安全体系中最重要的安全组件,数据
加密
可以保证数据的私密性。Cipher类为
加密
和解密提供密码功能,是
Java
Cryptographic Extension(JCE)框架的核心。在本系列中,讲解了数据
加密
的常见的相关概念,对Cipher引擎类进行了简明扼要的介绍, 对Cipher 加解密Key对象做了介绍。通过本系列的学习,可以了解数据
加密
的原理及过程,了解Cipher引擎类,本课程给出来最基本的数据
加密
的引擎类示例,便于用户学习和使用
Java
数据
加密
解密编程
java
加密
运行class/jar/war(支持window/linux/
Mac
)
java
加密
运行支持【spring+struts+mybatis+hibernate+mysql+oracle+sqlserver+postgresql+springMVC+springboot】 支持的项目:
Java
Web项目、Tomcat项目、SpringBoot项目、单独的Jar包项目、几乎所有的
Java
项目都...
Java
加密
扩展基础
Java
加密
扩展(JCE)现在已经成为
Java
SDK 1.4的核心组成部分。JCE基本上是一组提供
加密
框架和实现、密钥生成和协商以及消息认证代码(
MAC
)算法的
Java
包。
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章