https://square.github.io/retrofit/
https://github.com/square/retrofit/
https://www.jianshu.com/p/81754adcd4ae
android jdk8使用
implementation 'org.bouncycastle:bcprov-jdk15on:1.70'
java.security.NoSuchAlgorithmException: Provider BC does not provide SM4/CBC/PKCS5Padding
generateSm4EcbCipher 替换成它
private Cipher generateSm4EcbCipher(String sm4Name, int sm4Mode, byte[] sm4Key) throws NoSuchAlgorithmException, NoSuchProviderException, NoSuchPaddingException {
// Cipher cipher = Cipher.getInstance(sm4Name, BouncyCastleProvider.PROVIDER_NAME);
Cipher cipher = Cipher.getInstance(sm4Name, new BouncyCastleProvider());
Key secretKey = new SecretKeySpec(sm4Key, SM4_NAME);
IvParameterSpec ivParameterSpec = new IvParameterSpec(SM4_KEY_IV);
try {
cipher.init(sm4Mode, secretKey, ivParameterSpec);
} catch (InvalidKeyException | InvalidAlgorithmParameterException e) {
e.printStackTrace();
return cipher;
赠送jar包:bcprov-jdk15on-1.60.jar;
赠送原API文档:bcprov-jdk15on-1.60-javadoc.jar;
赠送源代码:bcprov-jdk15on-1.60-sources.jar;
赠送Maven依赖信息文件:bcprov-jdk15on-1.60.pom;
包含翻译后的API文档:bcprov-jdk15on-1.60-javadoc-API文档-中文(简体)-英语-对照版.zip;
Maven坐标:org.bouncycastle:bcprov-jdk15on:1.60;
标签:jdk15on、bouncycastle、bcprov、jar包、java、中英对照文档;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
双语对照,边学技术、边学英语。
安卓中,不管是内网还是外网,数据的传输首要考虑就是安全问题,尤其是用户信息,以及各种密码等敏感信息。
所以说,对数据的加密是很有必要的,尤其是当下物联网蓬勃发展的今天,数据安全尤为重要。
因此本人总结了一下安卓中几种加密方式的实现:
① MD5:一种不可逆的加密算法,常用于只需加密无需解密的数据上,比如用户密码,也常用来保证数据的完整性,因为数据被篡改后,其加密后的MD5也会
BouncyCastle/bin/BouncyCastleTest.jadBouncyCastle/bin/BouncyCastleTest.jarBouncyCastle/build/com/enterprisej2me/BouncyCastleTest/MIDlets/AESFast.classBouncyCastle/build/com/enterprisej2me/BouncyCastle...
在对接银行时,其提供的自定义的包中依赖的一个加解密包 bcprov-jdk15on-1.56是1.56 版本,这版中某方法或者类的作用域是public,而在我们项目中引用的bcprov-jdk15on-1.68是更高版本的1.68的,在这版中不是公开的,存在冲突。由于类加载机制,在加载时加载的是高版本的,因此引入的银行的包跑不通。链接:百度网盘 请输入提取码提取码:9fr0 在rule.txt中输入rule org.bouncycastle.** org.zm.bouncycastle.@1
1. 解除java jdk政策限制
相应配置文件下载地址
jdk6→http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
jdk7→http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
jdk8→http://www.oracle.com/technetwork/
|我正在尝试实现时间戳请求,如下所示:http://bouncy-castle.1462172.n4.nabble.com/Timestamp-request-and-response-td1558231.html在j2se中,它工作正常,但是在android上,我收到IllegalAccessError。Logcat输出:致命异常:主要java.lang.IllegalAccessError: ...
//AES256加密
private byte[] AESEncrypt(String content, byte[] key, byte[] iv){
byte[] byteContent = content.getBytes("utf-8");
// Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()
需要调用removeProvider方法后再调用addProvider。打印BC版本号,会发现没有调用成功。避免内存泄漏,复用provider。build.gradle需要引入。
在运行android应用程序时可能会出现java.lang.NoClassDefFoundError: org.bouncycastle.crypto.engines.RSAEngine这样的问题,导致程序运行直接崩溃掉。
原因:在android高版本的SDK里面有Android Dependencies 这个目录,它会将你引用的第三方jar包放置该目录下,这样才能引用你所加的类库,但是当导入别
使用对接方提供的javaDemo,然后报这个错java.security.NoSuchAlgorithmException:Provider BC does not provide SM4/ECB/PKCS5Padding
判断是jar包版本的问题,导入同版本的jar包还是报这个错,然后一直是在jdk中Cipher类和android的Cipher类找不同。
最后是在众多文章中找到了打印版本号的方法:Security.getProvider(BouncyCastle
Tronj是一个轻量级的SDK,其中包含用于处理TRON系统合约和智能合约的库。
Tronj使使用Java轻松构建TRON应用程序变得容易。
Tronj文档: ://tronjdocument.readthedocs.io/en/latest/
如何使用
Gradle设置
添加回购设置:
repositories {
maven {
url " https://dl.bintray.com/tronj/tronj "
然后添加所需的软件包作为依赖项。
dependencies {
// protobuf & grpc
implementation ' com.google.protobuf:protobuf-java:3.11.0 '
implementation ' org.tron.tronj:abi
Provider:AndroidKeyStoreBCWorkaround: version:1.0, Provider:CertPathProvider: version:1.0, url: http://z.kungfualumni.com/1/, Provider:HarmonyJSSE: version:1.0, Provider:AndroidOpenSSL: version:1.0, Provi...