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
}
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新幼儿教育H3C-cams DES加密算法研究总结 (6)全文阅读和word下载服务。
相关推荐: