zoukankan      html  css  js  c++  java
  • SecurityManager USE

    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    public class BaseT {
    
        public static void main(String[] args) throws IOException {
            
            System.setSecurityManager(new mySecurityM("ABC","123"));
            File f=new File("E:\Test.java"); 
            DataInputStream fis=new DataInputStream(new FileInputStream(f));
            String x="";
            
            while((x=fis.readLine())!=null){
                System.out.println(x);
            }
            fis.close();
        }
    }
    
    //----------------------
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    public class mySecurityM extends SecurityManager {
        private String upwd;
        private String unam;
        public mySecurityM(String unam,String upwd){
            this.upwd=upwd;
            this.unam=unam;
        }
        public boolean okacess(){
            System.out.println("请输入用户名和密码,用逗号隔开");
            BufferedReader dis = new BufferedReader(new InputStreamReader(System.in));
            try {
            String[] value=dis.readLine().split(",");
            if (value[0].equals(this.unam)&&value[1].equals(this.upwd))
            return true;
            else
            return false;
            } catch (IOException e) {
            return false;
            }
        }
     
        public void checkRead(String file){
            if(!okacess()){
                throw new SecurityException("No Premission.");
            }
        }
        
    }

     数字签名

    KEYSTORE
    keytool -genkey -alias key.keystore -keyalg RSA -validity 30000 -keystore key.keystore
    JARSIGNER
    jarsigner -verbose -keystore key.keystore -signedjar ABCsigned.jar ABC.jar key.keystore

    如果修改了CLASS文件,执行时会报错:

    C:UsersADDesktop>java -jar ABCsigned1.jar
    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.SecurityException: SHA-256 digest error for
    p2100/BaseT.class
    at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
    at java.util.jar.JarVerifier.processEntry(Unknown Source)
    at java.util.jar.JarVerifier.update(Unknown Source)
    at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
    at sun.misc.Resource.getBytes(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

  • 相关阅读:
    Java 在方法和作用域内的内部类
    java 内部类和向上转型
    java 内部类使用 .this 和 .new
    java innerclasses(内部类)
    Java过滤器与SpringMVC拦截器之间的关系与区别
    Maven异常:Could not find artifact
    soapUI测试webservice(参数为xml格式的处理方式)
    maven仓库加载本地包依赖
    spring data jpa的学习总结
    Java 中常用缓存Cache机制的实现
  • 原文地址:https://www.cnblogs.com/rojas/p/8929134.html
Copyright © 2011-2022 走看看