javax.crypto.BadPaddingException: Data must start with zero
图一和图二的区别是,图一是对String p 字符串解密,图二是对String p22字符串解密,字符串p 和p22 的区别在于,将p中的空格替换为+
所以只需要 p.replaceAll(" ","+")就可以解决报错
//私钥 String pri = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAJxGdtNQ7BVr+rwlw6ugOdMD6rNAaixVCYy/A55nzwsv/iNVECVKZdNcWjQzYePsr067ivEQ61tQs8km5wdqwa3uuzqUhaBThlzTUxvNs+JNTWA7soQYk09ODxhUYhl1ewNUJ3QVXD6ZN5XbmSRrKmywqYkd3QMF/JnWMUlOoSv/AgMBAAECgYAZaNupQF8inIwIS5ulLEg6p0hiHPcmfi0vVV+hQf/IMeWAmTQm3BHya/G+yxv/k1xt0NCmobmi/1w8OLcX3aPgAnF58g0dbVnrx9rv6OG6rSVR23iD/heIoFPkPCuFNtgQ47h+iRWxB7E0oMVfgD9Ro/Riiph1PhXxVdRivCnaAQJBAOSO2bAjUs+I76SkqcaJ8Ph3zyVqKgiocO/ZxvzRsWVE5M3BfBW15HEbh0uiI7cRIzJ/sTPIARmrzLPyhNZhkNcCQQCvCd7irUUxK7e10saANJ63PJsP4h5S6Gaitlx82vGduu4xm7p1jeSZEJ0fGZc/Rjb2tyQMByxuvNPFFjOLKlEZAkEAsvEcggjF1vJRHUhGG8j3vrCen55k1m56LW8Fmf7asnyj3muzqJPGDMAOxypkZ/mk4u6SYAYgxmZ5WBFx6x5r9QJBAKGOYbskpA1rRWe7wF0KtEd518EEOmrZeAnMeXb/+ixUIY+GJcZkjc69J9hRnWjYXNjAVrQHVvpqrKdnA3H6P9kCQHfaIO52as5Pbq6cWDrr3qSkVO1HoDyGK/q9YJJK+qRuEeVJvg9kqkOQ6L5Go9c7wGXMVE/9PBwS/5OFNWvxaKY="; //公钥加密后的密码 String p = "TS/gFu6Wh2JOd9FyaYIlUM3wckxrvKgriF4vb8ux e5qAC8/fmnwv97/ccG99 8Vx8krUB7WT0eRPr9ptcaoBFnHfFpjU6UGucwIcT3pJxfWy8cNRziViZ wItUUr4jdcHWLqLjCRW6BoZFbyQVmP8wmznIVPWjDTrDpHzJwZPM="; String p22 = "TS/gFu6Wh2JOd9FyaYIlUM3wckxrvKgriF4vb8ux+e5qAC8/fmnwv97/ccG99+8Vx8krUB7WT0eRPr9ptcaoBFnHfFpjU6UGucwIcT3pJxfWy8cNRziViZ+wItUUr4jdcHWLqLjCRW6BoZFbyQVmP8wmznIVPWjDTrDpHzJwZPM="; String pwd2=RSAUtils.decryptDataOnJava(p.replaceAll(" ", "+"),pri); System.out.println("pwd2"+pwd2); |