H3C-cams DES加密算法研究总结 (6)

寂寂无言 分享 2020-06-22 下载文档

bytes[bytes.length - 3] = (byte) ((b1 << 2) | (b2 >> 4)); bytes[bytes.length - 2] = (byte) ((b2 << 4) | (b3 >> 2)); bytes[bytes.length - 1] = (byte) ((b3 << 6) | b4); }

return bytes; }

private static byte[] discardNonBase64Bytes(byte[] data) { byte[] temp = new byte[data.length]; int bytesCopied = 0;

for (int i = 0; i < data.length; i++) { if (isValidBase64Byte(data[i])) { temp[bytesCopied++] = data[i]; } }

byte[] newData = new byte[bytesCopied];

System.arraycopy(temp, 0, newData, 0, bytesCopied); return newData; }

private static String discardNonBase64Chars(String data) { StringBuffer sb = new StringBuffer(); int length = data.length(); for (int i = 0; i < length; i++) {

if (isValidBase64Byte((byte) (data.charAt(i)))) { sb.append(data.charAt(i)); } }

return sb.toString(); }

private static boolean isValidBase64Byte(byte b) { if (b == '=') { return true;

} else if ((b < 0) || (b >= 128)) { return false;

} else if (decodingTable[b] == -1) { return false; }

return true; }

public static void main(String[] args) { String data = \;

byte[] result = Base64SF.encode(data.getBytes()); System.out.println(data);

System.out.println(new String(result));

System.out.println(new String(Base64SF.decode(new String(result))));

} }

把两个合起来的mydes.java package com.h3c.imc.common;

public class mydes {

private static String genpass(String key,String data) { }

byte[] base64result;

int bytelen = data.getBytes().length;

byte[] result = new byte[(bytelen / 8)*8 + (bytelen % 8)]; byte[] bytekey = key.getBytes(); byte[] bytedata = data.getBytes(); DES des = new DES();

result = des.DesEncrypt(bytekey, bytedata,1); base64result = Base64SF.encode(result); return (new String(base64result));

private static String depass(String key,String data) {

int bytelen = data.getBytes().length;

byte[] result = new byte[(bytelen / 8)*8 + (bytelen % 8)]; byte[] bytekey = key.getBytes(); DES des = new DES();

result = Base64SF.decode(data);

result = des.DesEncrypt(bytekey, result, 0);

for (int i = 0; i < result.length; i++) {

if (result[i]<32 || result[i]>127) { } }

String outstr; }

public static void main(String[] args) { String key = \; outstr=new String(result);

return outstr.substring(0, outstr.indexOf(\));

result[i]='\\0';

String data = \; //测试加密

String pass = genpass(key,data); System.out.println(pass); //测试解密

String mwpass = depass(key,pass); System.out.println(mwpass); }

附:Base64加解密的MSSQL实现: USE [master] GO

/****** Object: UserDefinedFunction [dbo].[c_GetUTF8Code] Script Date: 06/06/2013 16:32:35 ******/ SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

ALTER FUNCTION [dbo].[c_GetUTF8Code] (

@char Nchar )

RETURNS int AS

--UTF8转码 BEGIN

Declare @Code int

Select @Code=Cast(Unicode(@char) as int) Declare @Utf8Code int Set @Utf8Code=0

}


H3C-cams DES加密算法研究总结 (6).doc 将本文的Word文档下载到电脑

下一篇:2017小学一年级数学上册易错题整理(苏教版)

相关推荐
相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xxxxxx QQ:xxxxxx