导航:首页 > 源码编译 > ecc加密算法java

ecc加密算法java

发布时间:2022-08-14 22:19:46

㈠ 什么是ECC加密算法

ECC(Elliptic Curve Cryptosystems )椭圆曲线密码体制,美国SUN公司开发的,它的体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制,如果你能理解RSA算法,也算是对ECC有大概的了解,建议你去买些相关书籍看看。

㈡ 通过java如何实现AES密码算法

1. AES加密字符串

public static byte[] encrypt(String content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");// 创建AES的Key生产者

kgen.init(128, new SecureRandom(password.getBytes()));// 利用用户密码作为随机数初始化出
// 128位的key生产者
//加密没关系,SecureRandom是生成安全随机数序列,password.getBytes()是种子,只要种子相同,序列就一样,所以解密只要有password就行

SecretKey secretKey = kgen.generateKey();// 根据用户密码,生成一个密钥

byte[] enCodeFormat = secretKey.getEncoded();// 返回基本编码格式的密钥,如果此密钥不支持编码,则返回
// null。

SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 转换为AES专用密钥

Cipher cipher = Cipher.getInstance("AES");// 创建密码器

byte[] byteContent = content.getBytes("utf-8");

cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化为加密模式的密码器

byte[] result = cipher.doFinal(byteContent);// 加密

return result;

} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}
2. AES解密
public static byte[] decrypt(byte[] content, String password) {
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES");// 创建AES的Key生产者
kgen.init(128, new SecureRandom(password.getBytes()));
SecretKey secretKey = kgen.generateKey();// 根据用户密码,生成一个密钥
byte[] enCodeFormat = secretKey.getEncoded();// 返回基本编码格式的密钥
SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");// 转换为AES专用密钥
Cipher cipher = Cipher.getInstance("AES");// 创建密码器
cipher.init(Cipher.DECRYPT_MODE, key);// 初始化为解密模式的密码器
byte[] result = cipher.doFinal(content);
return result; // 明文

} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
}
return null;
}

㈢ 什么是RSA和ECC算法

RSA(Rivest-Shamir-Adleman)加密算法:它是第 一个既能用于数据加密也能用于数字签名的算法。比较易于理解和操作,是高强度非对称加密系统,密钥长度少则512位,多则2048位,非常难破解,安全系数是非常高的。ECC(Elliptic Curve Cryptosystems )加密算法:椭圆曲线密码体制,它同样也是在数据位上额外的位存储一个用数据加密的代码。椭圆曲线其实可能比RSA更复杂。国内的老品牌CA机构-天威诚信,旗下的vTrus SSL证书,该证书支持 SHA256 with RSA 2048 算法/ECC 256 算法。

㈣ 有ECC算法的软件吗

原来是椭圆曲线加密的算法呗?肯定有很多源码可以找到的呀。比如这里有一个java的实现 http://blog.csdn.net/feiying_soft/article/details/6454828需要原理的话有这里 http://blog.csdn.net/jiadelin/article/details/4595171

㈤ java加密的几种方式

朋友你好,很高兴为你作答。

首先,Java加密能够应对的风险包括以下几个:

1、核心技术窃取

2、核心业务破解

3、通信模块破解

4、API接口暴露

本人正在使用几维安全Java加密方式,很不错,向你推荐,希望能够帮助到你。

几维安全Java2C针对DEX文件进行加密保护,将DEX文件中标记的Java代码翻译为C代码,编译成加固后的SO文件。默认情况只加密activity中的onCreate函数,如果开发者想加密其它类和方法,只需对相关类或函数添加标记代码,在APK加密时会自动对标记的代码进行加密处理。

与传统的APP加固方案相比,不涉及到自定义修改DEX文件的加载方式,所以其兼容性非常好;其次Java函数被完全转化为C函数,直接在Native层执行,不存在Java层解密执行的步骤,其性能和执行效率更优。

如果操作上有不明白的地方,可以联系技术支持人员帮你完成Java加密。

希望以上解答能够帮助到你。

㈥ java 7的新特性

Oracle在其官方网站上公布了《Java SE 7 Features and Enhancements 》,其中详细介绍了Java SE 7 中所有主要的新特性和功能增强,具体内容如下: 1.二进制形式的字面值表示
2.在数值类型的字面值中使用下划线分隔符联接
3.创建泛型实例时自动类型推断
4.switch-case语句支持字符串类型
5.新增try-with-resources语句
6.单个catch子句同时捕获多种异常类型
7.改进使用带泛型可变参数的方法时的编译器警告和错误提示机制 1.新增javax.swing.JLayer类,一个灵活而且功能强大的Swing组件修饰器。它使你能够直接利用组件和组件的事件响应而无需修改底层组件。你可以点击查看如何使用JLayer修饰组件。
2.NimbusLook&Feel(L&F)从包com.sun.java.swing移动到标准的API包javax.swing;详细信息请查看javax.swing.plaf.nimbus。尽管它不是默认的L&F,但是现在你可以非常方便地使用它了。你可以查看Java教程中NimbusLookandFeel部分的详细信息,也可以在你的程序中运行三个使用Nimbus的简单方法的代码示例。
3.在以前的版本中,在同一个容器中混合使用重量级的AWT组件和轻量级的Swing组件可能会引发某些问题。不过,现在你可以在JavaSE7完美地混合使用它们了。你可以点击这里查看相关文章。
4.JavaSE7支持以指定的透明度或非矩形的方式来显示窗体,你可以点击这里查看Java教程中关于如何创建带有指定透明度和非矩形的窗体的部分内容。
5.类javax.swing.JColorChooser中新增了对以HSV方式来表现RGB色彩模型的支持。HSV和HSL是两种最常见的用于表示RGB色彩模型的表示方式。它们均表示色调、饱和度、亮度三个参数,不过取值形式不同。HSL的三个参数的取值范围均为0-255,HSV的三个参数的取值范围分别为0°-360°、0.0-1.0、0.0-1.0。 1.包java.nio.file以及相关联的包java.nio.file.attribute提供对文件IO以及访问文件系统更全面的支持。JDK7也支持zip压缩格式的文件系统。你可以参考以下资源获得更多信息:
a)你可以点击查看Java教程中关于文件I/O(NIO2.0特性)的部分内容;nio表示非阻塞式的IO(non-blockingI/O)。
b)开发一个自定义的文件系统提供者 。
c)zip压缩格式的文件系统提供者 。
d)目录%JAVA_HOME%/sample/nio/chatserver/下含有包括java.nio.file包在内的新API的演示示例。
e)目录%JAVA_HOME%/demo/nio/zipfs/下含有NIO2.0网络文件系统的演示示例。 1.新增ECDSA/ECDH等基于ECC加密算法的支持,详情查看Java加密体系结构中供应商SunEC提供支持的算法的部分内容。
2.禁用了MD2等一些弱加密算法,JavaSE7提供一种机制,用于在处理证书路径或与TLS交互时拒绝使用指定的加密算法。详情查看Java公共密钥程序员指南中的附录D:禁用指定的加密算法和Java安全套接字扩展中的禁用加密算法。
3.对Java安全套接字扩展(JavaSecureSocketExtension)中的SSL/TLS进行了一系列增强和完善。 1.基于类java.util.concurrent.ForkJoinPool的fork/join框架,作为接口java.util.concurrent.Executor的一个实现,它被用来高效地运行工作线程池中的大量任务。其中还使用了一种名为work-stealing的技术,它可以充分利用多处理器来保证所有的工作线程一直正常工作。详情查看Java教程中的Fork/Join部分。目录%JAVA_HOME%/sample/forkjoin/中包含fork/join的演示示例。
2.新增java.util.concurrent.ThreadLocalRandom类,它消除了使用伪随机数的线程之间的竞争。在多线程并发访问的情况下,使用ThreadLocalRandom比使用Math.random()可以减少并发线程之间的竞争,从而获得更好的性能。例如:
a) intr=ThreadLocalRandom.current().nextInt(4,77);
b) //将返回一个4-77之间的随机整数(不包含77)。
3.新增java.util.concurrent.Phaser类,它是一个新的类似于java.util.concurrent.CyclicBarrier的线程同步障碍辅助工具类(它允许一组线程互相等待,直到到达某个公共屏障点)。 1.一个新的基于XRender的渲染管道能够提供改进的图形运行性能,以支持现在的基于DirectX11的桌面应用。默认情况下,这个渲染管道并未启用,不过你可以使用命令行设置属性-Dsun.java2d.xrender=true来启用它。
2.现在JDK可以通过诸如GraphicsEnvironment.getAvailableFontFamilyNames等方法来枚举并显示系统中已安装的OpenType/CFF字体了,并且这些字体都可以被方法Font.createFont识别。你可以查看Java教程选择指定的字体。
3.类java.awt.font.TextLayout现在可以支持西藏文字的脚本了。
4.在Windows和Solaris操作系统中,文件fontconfig.properties中静态指定了JDK可以使用的逻辑字体。不过,在多数linux系统的实现中,并没有保证在特定的语言环境下对特定字体表现的支持。在JavaSE7中,libfontconfig可选择在“未识别”的Linux平台上使用的逻辑字体。更多信息可以查看Fontconfig。 1.JavaSE7现在已经更新JavaAPIforXMLProcessing(JAXP)至1.4.5版本,与以前的版本相比,该版本修复了许多bug,并且做了许多的改进,尤其是在一致性、安全性和性能方面。虽然JAXP仍然处于1.4版本,不过StAX已经升级到了1.2版本。更多信息你可以查看JAXP1.4.5发行说明以及JAXP1.4.5更新日志。
2.JavaSE7更新JavaArchitectureforXMLBinding(JAXB)至2.2.3版本,详情查看2.2以上版本的JAXB更新日志。
3.JavaSE7更新JavaAPIforXMLWebServices(JAX-WS)至2.2.4版本。详情查看2.2以上版本的JAX-WS更新日志。 1.java虚拟机支持非Java语言
2.G1(Garbage-First)垃圾收集器
3.JavaHotSpot虚拟机性能增强 1.支持使用try-with-resources语句进行自动的资源释放,包括连接、语句和结果集
2.支持RowSet1.1

㈦ 求一份java版的椭圆曲线加密算法

Java内置支持ecc的密钥生成与解释,但加密解密必须通过硬件完成,因为ecc在cpu上效率极低。

㈧ 几种加密算法在java中的应用

简单的Java加密算法有:
第一种. BASE
Base是网络上最常见的用于传输Bit字节代码的编码方式之一,大家可以查看RFC~RFC,上面有MIME的详细规范。Base编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base来将一个较长的唯一标识符(一般为-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
第二种. MD
MD即Message-Digest Algorithm (信息-摘要算法),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD的前身有MD、MD和MD。广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD后都能生成唯一的MD值。好比现在的ISO校验,都是MD校验。怎么用?当然是把ISO经过MD后产生MD的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD的串。就是用来验证文件是否一致的。
MD算法具有以下特点:
压缩性:任意长度的数据,算出的MD值长度都是固定的。
容易计算:从原数据计算出MD值很容易。
抗修改性:对原数据进行任何改动,哪怕只修改个字节,所得到的MD值都有很大区别。
弱抗碰撞:已知原数据和其MD值,想找到一个具有相同MD值的数据(即伪造数据)是非常困难的。
强抗碰撞:想找到两个不同的数据,使它们具有相同的MD值,是非常困难的。
MD的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD以外,其中比较有名的还有sha-、RIPEMD以及Haval等。
第三种.SHA
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于^位的消息,SHA会产生一个位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。
SHA-与MD的比较
因为二者均由MD导出,SHA-和MD彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
对强行攻击的安全性:最显着和最重要的区别是SHA-摘要比MD摘要长 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD是^数量级的操作,而对SHA-则是^数量级的操作。这样,SHA-对强行攻击有更大的强度。
对密码分析的安全性:由于MD的设计,易受密码分析的攻击,SHA-显得不易受这样的攻击。
速度:在相同的硬件上,SHA-的运行速度比MD慢。
第四种.HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

㈨ java最常用的几种加密算法

简单的Java加密算法有:
第一种. BASE
Base是网络上最常见的用于传输Bit字节代码的编码方式之一,大家可以查看RFC~RFC,上面有MIME的详细规范。Base编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base来将一个较长的唯一标识符(一般为-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
第二种. MD
MD即Message-Digest Algorithm (信息-摘要算法),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD的前身有MD、MD和MD。
MD算法具有以下特点:
压缩性:任意长度的数据,算出的MD值长度都是固定的。
容易计算:从原数据计算出MD值很容易。
抗修改性:对原数据进行任何改动,哪怕只修改个字节,所得到的MD值都有很大区别。
弱抗碰撞:已知原数据和其MD值,想找到一个具有相同MD值的数据(即伪造数据)是非常困难的。
强抗碰撞:想找到两个不同的数据,使它们具有相同的MD值,是非常困难的。
MD的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD以外,其中比较有名的还有sha-、RIPEMD以及Haval等。
第三种.SHA
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于^位的消息,SHA会产生一个位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。
SHA-与MD的比较
因为二者均由MD导出,SHA-和MD彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
对强行攻击的安全性:最显着和最重要的区别是SHA-摘要比MD摘要长 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD是^数量级的操作,而对SHA-则是^数量级的操作。这样,SHA-对强行攻击有更大的强度。
对密码分析的安全性:由于MD的设计,易受密码分析的攻击,SHA-显得不易受这样的攻击。
速度:在相同的硬件上,SHA-的运行速度比MD慢。
第四种.HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

㈩ 分享Java常用几种加密算法

简单的Java加密算法有:
第一种. BASE
Base是网络上最常见的用于传输Bit字节代码的编码方式之一,大家可以查看RFC~RFC,上面有MIME的详细规范。Base编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base来将一个较长的唯一标识符(一般为-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base编码具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
第二种. MD
MD即Message-Digest Algorithm (信息-摘要算法),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD的前身有MD、MD和MD。广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD后都能生成唯一的MD值。好比现在的ISO校验,都是MD校验。怎么用?当然是把ISO经过MD后产生MD的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD的串。就是用来验证文件是否一致的。
MD算法具有以下特点:
压缩性:任意长度的数据,算出的MD值长度都是固定的。
容易计算:从原数据计算出MD值很容易。
抗修改性:对原数据进行任何改动,哪怕只修改个字节,所得到的MD值都有很大区别。
弱抗碰撞:已知原数据和其MD值,想找到一个具有相同MD值的数据(即伪造数据)是非常困难的。
强抗碰撞:想找到两个不同的数据,使它们具有相同的MD值,是非常困难的。
MD的作用是让大容量信息在用数字签名软件签署私人密钥前被”压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的十六进制数字串)。除了MD以外,其中比较有名的还有sha-、RIPEMD以及Haval等。
第三种.SHA
安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于^位的消息,SHA会产生一个位的消息摘要。该算法经过加密专家多年来的发展和改进已日益完善,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”所以对散列值的数字签名就可以视为对此明文的数字签名。
SHA-与MD的比较
因为二者均由MD导出,SHA-和MD彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下几点不同:
对强行攻击的安全性:最显着和最重要的区别是SHA-摘要比MD摘要长 位。使用强行技术,产生任何一个报文使其摘要等于给定报摘要的难度对MD是^数量级的操作,而对SHA-则是^数量级的操作。这样,SHA-对强行攻击有更大的强度。
对密码分析的安全性:由于MD的设计,易受密码分析的攻击,SHA-显得不易受这样的攻击。
速度:在相同的硬件上,SHA-的运行速度比MD慢。
第四种.HMAC
HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

阅读全文

与ecc加密算法java相关的资料

热点内容
房产还没解压可以办理赠予吗 浏览:224
java毫秒转分钟 浏览:753
模式识别中文pdf 浏览:774
c语言平均数字编译错误 浏览:170
单片机算交流 浏览:45
php自适应网站 浏览:467
2b2t服务器怎么获得权限 浏览:815
c语言javaphp 浏览:804
程序员技术不分高低吗 浏览:619
dos不是内部或外部命令 浏览:709
PC机与单片机通讯 浏览:675
二级加密图 浏览:113
压缩机异音影响制冷吗 浏览:711
德斯兰压缩机 浏览:490
程序员太极拳视频 浏览:531
网上购买加密锁 浏览:825
安卓为什么软件要隐私 浏览:83
虚拟主机管理源码 浏览:811
java图形图像 浏览:230
单片机输出口电平 浏览:487