WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0 (整理)

Apk反编译之晋江小说阅读 反编译晋江apk获取des加密密钥,从而解码jct文件的过程。 阅读详情

package jct;

import java.security.*;


/**
* <p>计算字符串和byte[]的数字摘要 </p>
* @Copyright:WDSsoft
* @ad:WDSsoft “企业多级数字签名系统”- 最佳的企业电子文档多级数字签名方案
*/
public class Digest {

 

/**
* 计算字符串的SHA数字摘要,以byte[]形式返回
**/
public static byte[] MdigestSHA(String source){
byte[] nullreturn={0} ;
try{
MessageDigest thisMD=MessageDigest.getInstance("SHA");
byte[] digest=thisMD.digest(source.getBytes("UTF8"));
return digest;
} catch(Exception e){return null;}
}
/**
* 计算byte[]的SHA数字摘要,以byte[]形式返回
**/
public static byte[] MdigestSHA(byte[] source){
byte[] nullreturn={0} ;
try{
MessageDigest thisMD=MessageDigest.getInstance("SHA");
byte[] digest=thisMD.digest(source);
return digest;
} catch(Exception e){return null;}
}
/**
* 计算字符串的MD5数字摘要,以byte[]形式返回
**/
public static byte[] MdigestMD5(String source){
byte[] nullreturn={0} ;
try{
MessageDigest thisMD=MessageDigest.getInstance("MD5");
byte[] digest=thisMD.digest(source.getBytes("UTF8"));
return digest;
} catch(Exception e){return null;}
}
/**
* 计算byte[]的数MD5字摘要,以byte[]形式返回
**/
public static byte[] MdigestMD5(byte[] source){
byte[] nullreturn={0} ;
try{
MessageDigest thisMD=MessageDigest.getInstance("MD5");
byte[] digest=thisMD.digest(source);
return digest;
} catch(Exception e){return null;}
}
public static void main(String[] args){
String test="WDSsoft";

byte[] t1=MdigestSHA(test);
for(int i=0;i<t1.length;i++){
System.out.print(Integer.toString(Math.abs(t1[i])));
}
System.exit(0);
}

}

 

package jct;


import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.Key;
import java.security.KeyFactory;
import java.security.spec.EncodedKeySpec;
import java.security.Security;
import java.util.Random;
import java.util.Vector;

/**
* <p>封装同PBE(基于口令的加密)算法有关的方法,可用使用PBE算法加密和解密</p>
* @Copyright:WDSsoft
*/


public class PBETool
{

public PBETool() { }
/**
*测试
*/
public static void main(String[] args)
{
String tt=new String("java");
char[] password=tt.toCharArray();
byte[] pp;
PBETool pbe=new PBETool();
try{

pp=pbe.PBEunwrap(pbe.PBEwrap(tt.getBytes("UTF8"),password),password);
System.out.print(new String(pp));

}
catch(Exception e){}
}
/**
* 使用PBE加密byte[],随即撒盐,和unwrap方法配套使用
* @param byte[] target:PBE加密对象
* @param char[] password: PBE加密口令
* @return Object[] object[0]1:byte[]:密文; object[1]:byte[]:盐
*/
public Object[] PBEwrap(byte[] target,char[] password){
try{

PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
byte[] salt=new byte[8];
Random random=new Random();
random.nextBytes(salt);
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.ENCRYPT_MODE,key,paramSpec);
Object[] encryptedByte=new Object[2];
encryptedByte[0]=cipher.doFinal(target);
encryptedByte[1]=salt;
return encryptedByte;

}catch(Exception e){e.printStackTrace();
return null;
}
}
/**
* 使用PBE加密byte[],撒固定的盐,和unwrape_2配套使用
* @param byte[] target:PBE加密对象
* @param char[] password: PBE加密口令
* @return byte[] :加密后的密文
*/
public byte[] PBEwrap_2(byte[] target,char[] password){
try{
PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
//固定的盐,实际试用时可自行更改盐,但要和unwrape_2一致
byte[] salt=new byte[8];
salt[2]=salt[4]=salt[7]=11;
salt[1]=salt[3]=salt[5]=36;
salt[0]=10;
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.ENCRYPT_MODE,key,paramSpec);
return cipher.doFinal(target);


}catch(Exception e){e.printStackTrace();
return null;
}
}

 

/**
* PBE解密,和wrap配套使用
* @param Object[] encrypted: object[0] byte[]:密文 object[1]:byte[]:盐
* @param char[] password:口令
* @return byte[] 明文
*/
public byte[] PBEunwrap(Object[] encrypted,char[] password){
try{

byte[] wraped=(byte[])encrypted[0];
byte[] salt=(byte[])encrypted[1];
PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.DECRYPT_MODE,key,paramSpec);
return cipher.doFinal(wraped);


}catch(Exception e){

return null;}
}

/**
* PBE解密,和wrap_2配套使用
* @param byte[] encrypted:密文
* @param char[] password:口令
* @return byte[] 明文
*/

public byte[] PBEunwrap_2(byte[] encrypted,char[] password){
try{

byte[] wraped=encrypted;

//固定的盐,实际试用时可自行更改盐,但要和unwrap_2一致
byte[] salt=new byte[8];
salt[2]=salt[4]=salt[7]=11;
salt[1]=salt[3]=salt[5]=36;
salt[0]=10;
PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.DECRYPT_MODE,key,paramSpec);
return cipher.doFinal(wraped);


}catch(Exception e){

return null;}
}
}

 

package jct;


import java.security.KeyFactory;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.SecureRandom;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.security.Security;
import javax.crypto.Cipher;

/**
* <p>封装同RSA非对称加密算法有关的方法,可用于数字签名,RSA加密解密</p>
* @Copyright:WDSsoft
*/

public class RSATool {

public RSATool() { }

/**
* 用一个已打包成byte[]形式的私钥加密数据,即数字签名
* @param keyInByte 打包成byte[]的私钥
* @param source 要签名的数据,一般应是数字摘要
* @return 签名 byte[]
*/
public static byte[] sign(byte[] keyInByte,byte[] source){
try{
PKCS8EncodedKeySpec priv_spec=new PKCS8EncodedKeySpec(keyInByte);
KeyFactory mykeyFactory=KeyFactory.getInstance("RSA");
PrivateKey privKey= mykeyFactory.generatePrivate(priv_spec);
Signature sig=Signature.getInstance("SHA1withRSA");
sig.initSign(privKey);
sig.update(source);
return sig.sign();
}catch(Exception e){ return null; }
}
/**
* 验证数字签名
* @param keyInByte 打包成byte[]形式的公钥
* @param source 原文的数字摘要
* @param sign 签名(对原文的数字摘要的签名)
* @return 是否证实 boolean
*/
public static boolean verify(byte[] keyInByte,byte[] source,byte[] sign){
try{
KeyFactory mykeyFactory=KeyFactory.getInstance("RSA");
Signature sig=Signature.getInstance("SHA1withRSA");
X509EncodedKeySpec pub_spec=new X509EncodedKeySpec(keyInByte);
PublicKey pubKey=mykeyFactory.generatePublic(pub_spec);
sig.initVerify(pubKey);
sig.update(source);
return sig.verify(sign);
}catch(Exception e){
return false;
}
}
/**
* 建立新的密钥对,返回打包的byte[]形式私钥和公钥
* @return 包含打包成byte[]形式的私钥和公钥的object[],其中,object[0]为私钥byte[],object[1]为工要byte[]
*/
public static Object[] giveRSAKeyPairInByte(){
KeyPair newKeyPair=creatmyKey();
if(newKeyPair==null)return null;
Object[] re=new Object[2];
if(newKeyPair!=null){
PrivateKey priv=newKeyPair.getPrivate();
byte[] b_priv = priv.getEncoded();
PublicKey pub=newKeyPair.getPublic();
byte[] b_pub=pub.getEncoded();
re[0]=b_priv;
re[1]=b_pub;
return re;
}
return null;
}

/**
* 新建密钥对
* @return KeyPair对象
*/
public static KeyPair creatmyKey(){
KeyPair myPair;
long mySeed;
mySeed=System.currentTimeMillis();
try{
KeyPairGenerator keyGen=KeyPairGenerator.getInstance("RSA");
SecureRandom random=SecureRandom.getInstance("SHA1PRNG","SUN");
random.setSeed(mySeed);
keyGen.initialize(1024,random);
myPair=keyGen.generateKeyPair();
}catch(Exception e1){ return null; }
return myPair;
}


/**
* 使用RSA公钥加密数据
* @param pubKeyInByte 打包的byte[]形式公钥
* @param data 要加密的数据
* @return 加密数据
*/
public static byte[] encryptByRSA(byte[] pubKeyInByte,byte[] data){
try{
KeyFactory mykeyFactory=KeyFactory.getInstance("RSA");
X509EncodedKeySpec pub_spec=new X509EncodedKeySpec(pubKeyInByte);
PublicKey pubKey=mykeyFactory.generatePublic(pub_spec);
Cipher cipher=Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE,pubKey);
return cipher.doFinal(data);
}catch(Exception e){ return null; }
}
/**
* 用RSA私钥解密
* @param privKeyInByte 私钥打包成byte[]形式
* @param data 要解密的数据
* @return 解密数据
*/
public static byte[] decryptByRSA(byte[] privKeyInByte,byte[] data){
try{
PKCS8EncodedKeySpec priv_spec=new PKCS8EncodedKeySpec(privKeyInByte);
KeyFactory mykeyFactory=KeyFactory.getInstance("RSA");
PrivateKey privKey= mykeyFactory.generatePrivate(priv_spec);
Cipher cipher=Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE,privKey);
return cipher.doFinal(data);
}catch(Exception e){ return null; }

}
/**
*测试
*/
public static void main(String[] args) {
try{

Object[] v=giveRSAKeyPairInByte();
byte[] source=Digest.MdigestSHA("haha");
byte[] sign=sign((byte[])v[0],source);
boolean yes=verify((byte[])v[1],source,sign);
if(yes) System.out.print("verify/n");
}catch(Exception e){e.printStackTrace();}

}
}

 

package jct;


import javax.crypto.*;
import javax.crypto.spec.*;
import java.security.Key;
import java.security.KeyFactory;
import java.security.spec.EncodedKeySpec;
import java.security.Security;
import java.security.*;
import java.util.Random;
import java.util.Vector;

/**
* <p>封装同Blowfish对称加密算法有关的方法,包括了使用创建Blowfish密码,使用Blowfish加密、解密, 使用PBE(基于口令的加密)存取blowfiwsh密码 </p>
* @Copyright:WDSsoft
*/

 

public class BlowfishTool {

public BlowfishTool() {
}
/**
* 使用Blowfish加密
* @param Key key:密码
* @param byte[] text:明文
* @return byte[]:密文
*/
public static byte[] encryptReturnByte(Key key,byte[] text){
try{
Cipher cipher=Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE,key);
return cipher.doFinal(text);
}catch(Exception e){ return null; }
}
/**
* Blowfish解密
* @param Key key:密码
* @param byte[] text:密文
* @return byte[] : 明文
*/
public static byte[] decryptReturnByte(Key key,byte[] text){
try{
Cipher cipher=Cipher.getInstance("Blowfish/ECB/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE,key);
return cipher.doFinal(text);
}catch(Exception e){ return null;}
}
/**
* 使用PBE保管Blowfish密码
* @param Key targetKey: Blowfish密码
* @param char[] password: 口令
* @return Vector-element1:byte[]:密文-element2:byte[]:盐
*/

public static Vector wrapKey(Key targetKey,char[] password){
try{
PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
byte[] salt=new byte[8];
Random random=new Random();
random.nextBytes(salt);
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.WRAP_MODE,key,paramSpec);
Vector encryptedKey=new Vector();
encryptedKey.addElement(cipher.wrap(targetKey));
encryptedKey.addElement(salt);
return encryptedKey;
}catch(Exception e){e.printStackTrace();
return null;
}
}
/**
* 取出PBE加密的密钥
* @param Vector encryptedKey-element1:byte[]:密文-element2:byte[]:盐
* @param char[] password:口令
* @return Key:Blowfish密码
*/
public static Key unwrapKey(Vector encryptedKey,char[] password){
try{

byte[] wrapedKey=(byte[])encryptedKey.elementAt(0);
byte[] salt=(byte[])encryptedKey.elementAt(1);
PBEKeySpec keySpec=new PBEKeySpec(password);
SecretKeyFactory keyFactory=SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key=keyFactory.generateSecret(keySpec);
Cipher cipher=Cipher.getInstance("PBEWithMD5AndDES");
PBEParameterSpec paramSpec=new PBEParameterSpec(salt,100);
cipher.init(cipher.UNWRAP_MODE,key,paramSpec);
return cipher.unwrap(wrapedKey,"Blowfish",cipher.SECRET_KEY);
}catch(Exception e){ return null; }
}
/**
* 产生一个Blowfish密码
* @return Key Blowfish 密码
*/
public static Key creatKey(){
try{
KeyGenerator keyGenerator=KeyGenerator.getInstance("Blowfish");
keyGenerator.init(128);
Key key=keyGenerator.generateKey();
return key;
}catch(Exception e){return null;}
}

/**
* 将Blowfish密码Key 对象转为byte[] 形式
* @param Key Blowfish密码Key 对象
* @return byte[]形式Blowfish密码
*/
public static byte[] encodeKey(Key key){
return key.getEncoded();
}

/**
* 将byte[] 形式Blowfish密码转为Key 对象
* @param byte[] 形式Blowfish密码
* @return Key Blowfish密码Key 对象
*/
public static Key decodeKey(byte[] keyByteCode){
SecretKeySpec myKey=new SecretKeySpec(keyByteCode,"Blowfish");
return myKey;
}

}

 

package jct;

/**
*<p>WDSsoft免费源代码,java加密解密编程常用工具包 JCT 1.0<p><br>
* WDSsoft的企业多级数字签名系统(MDSS)-目前最佳的企业文档数字签名系统<br>
*/

public class _Readme {

}

 

基于JAVA技术的搜索引擎的研究与实现 <html xmlns:v="urn:schemas-microsoft-com:vml"xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:w="urn:schemas-microsoft-com:office:word"xmlns:st1="urn:schemas-microsoft-com:office:smarttags 阅读详情

相关推荐

wds源码Android

wds源码,是一个很不错的Android代码,有兴趣的伙伴们抽时间可以看一下把。

JCT 的点点介绍 来自于网络

       jCT全称:      javaScript Common Templates  就是 javaScript 共用模板      属于WEB开发模板技术的一种.jCT用javaScript写成,通常工作于浏览器客户端.      基本功能:      作为模板技术,完成后台数据与htm模板(jCT模板)的组装,得到最终表现代码是jCT的基本功能.

想飞的鱼 1667

JCT - java加密解密工具包

JCT 为java开发者提供实用、方便、简洁的加密和解密相关的工具代码。1.0版提供Blowfish,SHA与MD5数字摘要,PBE基于口令的加密,RSA算法工具类,使这些算法更容易在编成中使用.文件包中含源码、文档、class包WDSsoft:http://www.wdssoft.com

Android、Ios and Java 实现三重Des对称加密

引言      如今手机app五彩缤纷,确保手机用户的数据安全是开发人员必须掌握的技巧,下面通过实例介绍DES在android、ios、java平台的使用方法; DES加密是目前最常用的对称加密方式,性能优于非对称加密(RSA),是手机app请求数据加密的优先选择。   DES简介:      DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥...

mn880213的专栏 379

Java加密解密工具集+JCT+v1源码整理

Java加密解密工具集+JCT+v1源码整理

jar包MD5加密包含用法

压缩包中包含MD5加密算法的jar包、md5调用用法,请放心使用,如果不能用请通知我.

SI4463配置软件wds3

@SI4463配置软件wds3 从官网下载的软件速度较慢,在网上搜索都要金币,这里提供一个快捷的软件以供下载。 软件使用连接如下 软件使用简单教程 软件下载连接

littleboy_8050的博客 1829

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法

【YOLOv7-环境搭建】PyTorch安装后输出版本显示No module named ‘Torch’的解决方法:①检查PyCharm导入的环境是否错误②添加Torch包

qq_59942266的博客 4970

jCT 第三版预览,已废弃,留作历史

重新进行了设计,抛弃了所有重新定义javascript固有语法的方法,这样也就是无招胜有招 了, 而且可方便自定义标记 ,没有精力写注解和用法了.直接贴源代码(初稿)吧:(请在FF下测试,还没有调整IE的兼容性) 细心的朋友应该可以看出来,不同标记之间是可以转换的. /** * javascript Common Templates(jCT) 3(第3版) * http://code.goog...

achun 361

嵌入式开发中SAR与ΔΣ ADC选型指南:从原理到实战应用

模数转换器是嵌入式系统连接模拟世界与数字世界的核心接口,其选型直接决定了数据采集的精度与可靠性。SAR ADC采用逐次逼近原理,如同天平称重,通过二进制搜索快速完成转换,具备高速、多通道轮询的优势,适合电机控制、通信等动态场景。ΔΣ ADC则基于过采样与噪声整形技术,以速度换取精度,通过数字滤波输出高分辨率结果,在传感器测量、音频采集等静态高精度领域表现卓越。理解这两种架构的工作原理差异,是进行嵌入式ADC选型的基础。在实际工程中,需结合信号带宽、多通道切换需求、功耗约束及PCB布局能力进行综合权衡。例如,

weixin_30140399的博客 244

帆软js--获取控件和单元格

参数面板: 获取面板控件 ,name为控件名称:_g().parameterEl.getWidgetByName("name") 取值:_g().parameterEl.getWidgetByName("tt3").getValue()2323 赋值:_g().parameterEl.getWidgetByName("tt2").setValue("987") 调用对应的事件比...

江湖行骗老中医 7198

Java 类java.security.spec.PKCS8EncodedKeySpec 实例源码

项目:Alpine 文件:KeyManager.java /** * Saves a key pair. * * @param keyPair the key pair to save * @throws IOException if the files cannot be written * @since 1.0.0 */ public void save(KeyPair keyPair) throws IOException { LOGGER.info("Saving...

qq_41980051的博客 3075

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

【Java】代码加密

Java代码加密

dyn的博客 4596

自定义模型训练——打造专属OpenClaw模型(2026AI版)

本文介绍了OpenClaw自定义模型训练的核心流程,包括框架选择(PyTorch、TensorFlow、HuggingFace和原生OpenClaw框架)、训练环境搭建脚本、以及数据收集系统的设计。数据收集器支持从数据库、API、文件和网络等多种来源获取训练数据,并提供灵活的过滤机制确保数据质量。通过这套系统,开发者可以高效准备训练数据,为后续模型训练打下坚实基础。

博客 877

5. SAP UI5 视图控制器(Controller)初探

本教程的前一个步骤也就是第四个步骤,我们了解了 SAP UI5 XML 视图的使用方法。在该步骤里,我们在 XML 视图里声明了一个 Text 控件实例,该控件位于 sap.m 这个命名空间内。 本步骤会继续接触 SAP UI5 MVC 框架中三大基石的另一块:C - Controller,即控制器。 先看看本步骤完成之后,我们得到的 SAP UI5 应用能实现一个什么样的效果。 访问如下 url: http://localhost:8080/webapp/index.html 能看到一个 Say Hell

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4599

Java文件/文件夹 加密解密工具(Swing版)

前言 这是一款自设计的文件加密工具,没有用到多线程和高级流,性能上还是和市面上的软件有很大差异。 基本原理: Java利用字节型文件流进行文件的复制粘贴,文件加密与解密 Java使用字节型文件流完成文件夹的复制(递归) 并且增加了输入密码对文件进行加密的功能,如果密码输入不正确,解密后的文件是无法查看的。 加密时对所有字节做了处理,因此它适用于普通文本文件的加密。 使用到了递归,因此它也适用于文件夹的加密。 样例代码 funBtn.addMouseListener(new MouseAdap

发光吖的博客 2489

PCL 切片法实现点云模型的体积测量、面积测量(二)

通过PCL VTK进行切片法,实现点云模型的体积测量、面积测量。

weixin_43896283的博客 1712

基于Java的操作系统发展史!

 ************************************************第一个纯Java操作系统*************************************************纯Java操作系统SavaJe已经得到广泛支持与商业应用2005年 02月05日 贝尔实验室发明的SavaJe  OS是一个纯Java操作系统,支持J2SE,已经得到强

Java之路 1万+

YOLOv8+BiFPN双向特征金字塔:多尺度目标检测精度提升28%的实战教程

双向特征金字塔网络(BiFPN)是一种强化多尺度特征融合支持“自顶向下+自底向上”的双向特征流动,同时保留不同尺度的细节信息;引入加权融合机制,自动学习不同特征的重要性权重;裁剪冗余节点,在轻量化的同时提升融合效率。

m0_64661770的博客 492

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

代码加密:加密Java源代码,保护自己的版权!

 内容:    一、为什么要加密?  二、定制类装入器   三、加密、解密  四、应用实例  五、注意事项    Java程序的源代码很容易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只

Java之路 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Jdk5.0新特性——Generic Types (泛型) /1-2章

Jdk5.0新特性——Generic Types (泛型)作者:askshao@yahoo.com.cn      http://blog.csdn.net/fasttalkJDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0。这说明Java已经有大幅度的变化。本文将讲解JDK5.0支持的新功能-----Java的泛型. 目录 1. 介绍2. 定义简单Java泛型3. 泛型通配符 

Java之路 7389

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Jdk5.0新特性——Generic Types (泛型) /第5章

5.泛型方法考虑写一个持有数组类型对象和一个集合对象的方法,把数组里的所有对象都放到集合里。第一个程序为:   static void fromArrayToColleciton(Object[]a,Collection c){     for (Object o : a){        c.add(o);//编译时错误        }   } 到现在为止,你可能学会避免开始的错误而去使用Co

Java之路 7047

Jdk5.0新特性——Generic Types (泛型) /第3章

3. 泛型通配符 首先,下面是一个例子,作用是打印出一个集合中的所有元素,我们首先用老版本jdk1.4的编码规则,代码如下:void printColleciton(Collection c){iterator i = c.iterator();for (k = 0; k System.out.pritnln(i.next();}然后,我们用jdk5.0泛型来重写上面这段代码(循环的语法是新版本的

Java之路 6692

Jdk5.0新特性——Generic Types (泛型) /第4章

4.泛型与数据类型转换 4.1. 消除类型转换    上面的例子大家看到什么了,数据类型转换的代码不见了。在以前我们经常要书写以下代码,如: import Java.util.Hashtable; class Test {   public static void main(String[] args) {    Hashtable h = new Hashtable();    h.put("k

Java之路 6339

Structs深入研究(一)-----Struts framework的工作原理和组件

Struts framework的工作原理和组件对于Struts 如何控制、处理客户请求,让我们通过对struts的四个核心组件介绍来具体说明。这几个组件就是:ActionServlet。Action Classes,Action Mapping(此处包括ActionForward),ActionFrom Bean。Struts ActionServlet控制器对象       ActionSer

Java之路 6252
上一篇: JAVA上加密算法的实现用例
下一篇: 程序人生:东软,我把青春献给了你 (整理)
fasttalk
博客等级 码龄24年 95粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值