解密main函数 和this,static关键字,以及用java命令传参

     类内部构造函数之间的相互调用,不同于一般的函数调用,不能用构造函数名,而是直接用this关键字加参数,注意,this后面没有“点函数名”。而且,this语句只能定义在构造函数的第一行注意,this语句是指调用构造函数,而this关键字是代表当前对象自身,用点来调用当前对象中的属性和方法。假如出现这样的情况:this.Person(name),this.name=name在同一个有参的构造函数中,之所以要放在第一行,是因为初始化的动作要先执行,在执行其他的赋值操作。

main不是一个关键字,但是是一个特殊的单词,可以被jvm识别;主函数格式是固定的,可以被jvm识别,但是main函数可以重载,但是入口不会变,那就是public static void main(String[] args)


static声明的属性是所有对象共享的,改变其中一个对象中该属性的值,会同步到所有的对象中,因此也把用static类型声明的变量称为“类变量”该变量可以用类名直接访问,而不需要通过创建的对象访问;同理,用static声明的方法也被称为“类方法”,但是要注意:如果在类中声明了一个static类型的属性,则此属性既可以在非static类型的方法中使用,也可以在static类型的方法中使用,但用static类型的属性调用非static类型的属性时则会出现错误。这也是为什么在主函数中只能调用static类型的方法的原因。

由于java虚拟机需要调用类的main()方法,所以该方法的访问权限是public,又因为java虚拟机在执行main()方法时不必创建对象,所以该方法必须是static的,该方法接收一个String类型的数组参数,该数组中保存执行java命令时传递给所运行的类的参数。向java中传递参数可用如下的命令:java 类名称 参数参数参数3

Java提供了丰富的加密解密库,可以执行各种加密操作。以下是一个使用Java进行加密解密的简单示例代码: 首先,你需要导入Java加密库中相关的类: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.util.Base64; ``` 然后,创建一个生成密钥和执行加密解密的类: ```java public class CryptoExample { // 生成AES密钥 public static SecretKey generateAESKey() throws Exception { KeyGenerator keyGenerator = KeyGenerator.getInstance("AES"); keyGenerator.init(128); // AES密钥长度可以是128、192或256位 return keyGenerator.generateKey(); } // AES加密 public static String encrypt(String data, SecretKey secretKey) throws Exception { Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] encryptedBytes = cipher.doFinal(data.getBytes()); return Base64.getEncoder().encodeToString(encryptedBytes); } // AES解密 public static String decrypt(String encryptedData, SecretKey secretKey) throws Exception { Cipher cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] decodedBytes = Base64.getDecoder().decode(encryptedData); byte[] decryptedBytes = cipher.doFinal(decodedBytes); return new String(decryptedBytes); } public static void main(String[] args) { try { SecretKey secretKey = generateAESKey(); String originalString = "这是一个要加密的字符串"; String encryptedString = encrypt(originalString, secretKey); String decryptedString = decrypt(encryptedString, secretKey); System.out.println("原始字符串: " + originalString); System.out.println("加密后字符串: " + encryptedString); System.out.println("解密后字符串: " + decryptedString); } catch (Exception e) { e.printStackTrace(); } } } ``` 这段代码展示了如何生成AES密钥、使用该密钥进行加密和解密操作。加密后的数据是Base64编码的字符串,解码后可以还原为原始数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值