很多APP加固平 台都提供免费和付费加密服务,本人想咨询一下几维安全免费与定制服务有哪些区别?
在线免费加密服务:只可使用在线免费加密服务,包括iOS加密[静态库加密]、安卓加密[APK加密、静态库加密]、脚本加密[C#脚本加密、Lua脚本加密]
离线定制加密服务:与免费加密服务相比,其加密功能点强度更高,覆盖面更全,形成完整的防护体系。并且在使用方面没有项目类型的约束。同时支持应用、静态库和动态库项目。
几维安全是不是可以做app检测 安全评估?
腾讯手机管家依托腾讯安全联合实验室领先的技术实力,基于腾讯安全开放平台,对外输出技术和能力,与各大手机厂商达成合作,将安全功能置于系统底层以提升手机安全性能。目前,三星、魅族、华为、中兴、酷派、联想诸多手机品牌都采用了腾讯手机管家的病毒查杀、骚扰拦截等安全模块或者与腾讯手机管家展开了密切合作,为用户打造更安全的手机使用体验。
请问一下,如何免费使用App加密服务?
几维安全针对中小型企业和个人开发者提供免费加密服务,包括APK加密 [SO库加壳、防二次打包、DLL文件加密]、 静态库加密 [代码混淆和字符串加密]、脚本加密 [C#、Lua]。
注册/登陆 几维安全平台,根据平台导航提示即可使用在线免费加密服务。
温馨提示:静态库加密开放了代码混淆和字符串加密两项功能,在静态防护方面非常实用,针对iOS开发者可编写静态库.a加密后再集成到App中;针对Android开发者,可先编写静态库.a,加密后再链接编译到SO动态库中,最终打包出来的APK还可以继续上传到几维防御平台,对APK做更多加密保护操作,操作完成后,重新签名加密后的APK即可使用。
参考资料:http://www.kiwisec.com/product/detection.shtml
java密码加密与解密
以下两个类可以很方便的完成字符串的加密和解密 加密 CryptHelper encrypt(password) 解密 CrypHelper decrypt(password) 代码如下 CryptUtils java [java] package gdie lab crypt; import java io IOException; import javax crypto Cipher; import javax crypto KeyGenerator; import javax crypto SecretKey; import apache xerces internal impl dv util Base ; public class CryptUtils { private static String Algorithm = DES ; private static byte[] DEFAULT_KEY=new byte[] { }; private static String VALUE_ENCODING= UTF ; /** * 生成密钥 * * @return byte[] 返回生成的密钥 * @throws exception * 扔出异常 */ public static byte[] getSecretKey() throws Exception { KeyGenerator keygen = KeyGenerator getInstance(Algorithm) SecretKey deskey = keygen generateKey() // if (debug ) System out println ( 生成密钥 +byte hex (deskey getEncoded // ())) return deskey getEncoded() } /** * 将指定的数据根据提供的密钥进行加密 * * @param input * 需要加密的数据 * @param key * 密钥 * @return byte[] 加密后的数据 * @throws Exception */ public static byte[] encryptData(byte[] input byte[] key) throws Exception { SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm) // if (debug ) // { // System out println ( 加密前的二进串 +byte hex (input )) // System out println ( 加密前的字符串 +new String (input )) // // } Cipher c = Cipher getInstance(Algorithm) c init(Cipher ENCRYPT_MODE deskey) byte[] cipherByte = c doFinal(input) // if (debug ) System out println ( 加密后的二进串 +byte hex (cipherByte )) return cipherByte; } public static byte[] encryptData(byte[] input) throws Exception { return encryptData(input DEFAULT_KEY) } /** * 将给定的已加密的数据通过指定的密钥进行解密 * * @param input * 待解密的数据 * @param key * 密钥 * @return byte[] 解密后的数据 * @throws Exception */ public static byte[] decryptData(byte[] input byte[] key) throws Exception { SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm) // if (debug ) System out println ( 解密前的信息 +byte hex (input )) Cipher c = Cipher getInstance(Algorithm) c init(Cipher DECRYPT_MODE deskey) byte[] clearByte = c doFinal(input) // if (debug ) // { // System out println ( 解密后的二进串 +byte hex (clearByte )) // System out println ( 解密后的字符串 +(new String (clearByte ))) // // } return clearByte; } public static byte[] decryptData(byte[] input) throws Exception { return decryptData(input DEFAULT_KEY) } /** * 字节码转换成 进制字符串 * * @param byte[] b 输入要转换的字节码 * @return String 返回转换后的 进制字符串 */ public static String byte hex(byte[] bytes) { StringBuilder hs = new StringBuilder() for(byte b : bytes) hs append(String format( % $ X b)) return hs toString() } public static byte[] hex byte(String content) { int l=content length()》 ; byte[] result=new byte[l]; for(int i= ;i<l;i++) { int j=i《 ; String s=content substring(j j+ ) result[i]=Integer valueOf(s ) byteValue() } return result; } /** * 将字节数组转换为base 编码字符串 * @param buffer * @return */ public static String bytesToBase (byte[] buffer) { //BASE Encoder en=new BASE Encoder() return Base encode(buffer) // return encoder encode(buffer) } /** * 将base 编码的字符串解码为字节数组 * @param value * @return * @throws IOException */ public static byte[] base ToBytes(String value) throws IOException { //return Base decodeToByteArray(value) // System out println(decoder decodeBuffer(value)) // return decoder decodeBuffer(value) return Base decode(value) } /** * 加密给定的字符串 * @param value * @return 加密后的base 字符串 */ public static String encryptString(String value) { return encryptString(value DEFAULT_KEY) } /** * 根据给定的密钥加密字符串 * @param value 待加密的字符串 * @param key 以BASE 形式存在的密钥 * @return 加密后的base 字符串 * @throws IOException */ public static String encryptString(String value String key) throws IOException { return encryptString(value base ToBytes(key)) } /** * 根据给定的密钥加密字符串 * @param value 待加密的字符串 * @param key 字节数组形式的密钥 * @return 加密后的base 字符串 */ public static String encryptString(String value byte[] key) { try { byte[] data=value getBytes(VALUE_ENCODING) data=CryptUtils encryptData(data key) return bytesToBase (data) } catch (Exception e) { // TODO Auto generated catch block e printStackTrace() return null; } } /** * 解密字符串 * @param value base 形式存在的密文 * @return 明文 */ public static String decryptString(String value) { return decryptString(value DEFAULT_KEY) } /** * 解密字符串 * @param value base 形式存在的密文 * @param key base 形式存在的密钥 * @return 明文 * @throws IOException */ public static String decryptString(String value String key) throws IOException { String s=decryptString(value base ToBytes(key)) return s; } /** * 解密字符串 * @param value base 形式存在的密文 * @param key 字节数据形式存在的密钥 * @return 明文 */ public static String decryptString(String value byte[] key) { try { byte[] data=base ToBytes(value) data=CryptUtils decryptData(data key) return new String(data VALUE_ENCODING) }catch(Exception e) { e printStackTrace() return null; } } } package gdie lab crypt; import java io IOException; import javax crypto Cipher; import javax crypto KeyGenerator; import javax crypto SecretKey; import apache xerces internal impl dv util Base ; public class CryptUtils { private static String Algorithm = DES ; private static byte[] DEFAULT_KEY=new byte[] { }; private static String VALUE_ENCODING= UTF ; /** * 生成密钥 * * @return byte[] 返回生成的密钥 * @throws exception * 扔出异常 */ public static byte[] getSecretKey() throws Exception { KeyGenerator keygen = KeyGenerator getInstance(Algorithm) SecretKey deskey = keygen generateKey() // if (debug ) System out println ( 生成密钥 +byte hex (deskey getEncoded // ())) return deskey getEncoded() } /** * 将指定的数据根据提供的密钥进行加密 * * @param input * 需要加密的数据 * @param key * 密钥 * @return byte[] 加密后的数据 * @throws Exception */ public static byte[] encryptData(byte[] input byte[] key) throws Exception { SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm) // if (debug ) // { // System out println ( 加密前的二进串 +byte hex (input )) // System out println ( 加密前的字符串 +new String (input )) // // } Cipher c = Cipher getInstance(Algorithm) c init(Cipher ENCRYPT_MODE deskey) byte[] cipherByte = c doFinal(input) // if (debug ) System out println ( 加密后的二进串 +byte hex (cipherByte )) return cipherByte; } public static byte[] encryptData(byte[] input) throws Exception { return encryptData(input DEFAULT_KEY) } /** * 将给定的已加密的数据通过指定的密钥进行解密 * * @param input * 待解密的数据 * @param key * 密钥 * @return byte[] 解密后的数据 * @throws Exception */ public static byte[] decryptData(byte[] input byte[] key) throws Exception { SecretKey deskey = new javax crypto spec SecretKeySpec(key Algorithm) // if (debug ) System out println ( 解密前的信息 +byte hex (input )) Cipher c = Cipher getInstance(Algorithm) c init(Cipher DECRYPT_MODE deskey) byte[] clearByte = c doFinal(input) // if (debug ) // { // System out println ( 解密后的二进串 +byte hex (clearByte )) // System out println ( 解密后的字符串 +(new String (clearByte ))) // // } return clearByte; } public static byte[] decryptData(byte[] input) throws Exception { return decryptData(input DEFAULT_KEY) } /** * 字节码转换成 进制字符串 * * @param byte[] b 输入要转换的字节码 * @return String 返回转换后的 进制字符串 */ public static String byte hex(byte[] bytes) { StringBuilder hs = new StringBuilder() for(byte b : bytes) hs append(String format( % $ X b)) return hs toString() } public static byte[] hex byte(String content) { int l=content length()》 ; byte[] result=new byte[l]; for(int i= ;i<l;i++) { int j=i《 ; String s=content substring(j j+ ) result[i]=Integer valueOf(s ) byteValue() } return result; } /** * 将字节数组转换为base 编码字符串 * @param buffer * @return */ public static String bytesToBase (byte[] buffer) { //BASE Encoder en=new BASE Encoder() return Base encode(buffer) // return encoder encode(buffer) } /** * 将base 编码的字符串解码为字节数组 * @param value * @return * @throws IOException */ public static byte[] base ToBytes(String value) throws IOException { //return Base decodeToByteArray(value) // System out println(decoder decodeBuffer(value)) // return decoder decodeBuffer(value) return Base decode(value) } /** * 加密给定的字符串 * @param value * @return 加密后的base 字符串 */ public static String encryptString(String value) { return encryptString(value DEFAULT_KEY) } /** * 根据给定的密钥加密字符串 * @param value 待加密的字符串 * @param key 以BASE 形式存在的密钥 * @return 加密后的base 字符串 * @throws IOException */ public static String encryptString(String value String key) throws IOException { return encryptString(value base ToBytes(key)) } /** * 根据给定的密钥加密字符串 * @param value 待加密的字符串 * @param key 字节数组形式的密钥 * @return 加密后的base 字符串 */ public static String encryptString(String value byte[] key) { try { byte[] data=value getBytes(VALUE_ENCODING) data=CryptUtils encryptData(data key) return bytesToBase (data) } catch (Exception e) { // TODO Auto generated catch block e printStackTrace() return null; } } /** * 解密字符串 * @param value base 形式存在的密文 * @return 明文 */ public static String decryptString(String value) { return decryptString(value DEFAULT_KEY) } /** * 解密字符串 * @param value base 形式存在的密文 * @param key base 形式存在的密钥 * @return 明文 * @throws IOException */ public static String decryptString(String value String key) throws IOException { String s=decryptString(value base ToBytes(key)) return s; } /** * 解密字符串 * @param value base 形式存在的密文 * @param key 字节数据形式存在的密钥 * @return 明文 */ public static String decryptString(String value byte[] key) { try { byte[] data=base ToBytes(value) data=CryptUtils decryptData(data key) return new String(data VALUE_ENCODING) }catch(Exception e) { e printStackTrace() return null; } } } CryptHelper java [java] package gdie lab crypt; import javax crypto Cipher; import javax crypto SecretKey; import javax crypto SecretKeyFactory; import javax crypto spec DESKeySpec; import javax crypto spec IvParameterSpec; import springframework util DigestUtils; public class CryptHelper{ private static String CRYPT_KEY = zhongqian ; //加密 private static Cipher ecip; //解密 private static Cipher dcip; static { try { String KEY = DigestUtils md DigestAsHex(CRYPT_KEY getBytes()) toUpperCase() KEY = KEY substring( ) byte[] bytes = KEY getBytes() DESKeySpec ks = new DESKeySpec(bytes) SecretKeyFactory skf = SecretKeyFactory getInstance( DES ) SecretKey sk = skf generateSecret(ks) IvParameterSpec iv = new IvParameterSpec(bytes) ecip = Cipher getInstance( DES/CBC/PKCS Padding ) ecip init(Cipher ENCRYPT_MODE sk iv ) dcip = Cipher getInstance( DES/CBC/PKCS Padding ) dcip init(Cipher DECRYPT_MODE sk iv ) }catch(Exception ex) { ex printStackTrace() } } public static String encrypt(String content) throws Exception { byte[] bytes = ecip doFinal(content getBytes( ascii )) return CryptUtils byte hex(bytes) } public static String decrypt(String content) throws Exception { byte[] bytes = CryptUtils hex byte(content) bytes = dcip doFinal(bytes) return new String(bytes ascii ) } //test public static void main(String[] args) throws Exception { String password = gly ; String en = encrypt(password) System out println(en) System out println(decrypt(en)) } } package gdie lab crypt; import javax crypto Cipher; import javax crypto SecretKey; import javax crypto SecretKeyFactory; import javax crypto spec DESKeySpec; import javax crypto spec IvParameterSpec; import springframework util DigestUtils; public class CryptHelper{ private static String CRYPT_KEY = zhongqian ; //加密 private static Cipher ecip; //解密 private static Cipher dcip; static { try { String KEY = DigestUtils md DigestAsHex(CRYPT_KEY getBytes()) toUpperCase() KEY = KEY substring( ) byte[] bytes = KEY getBytes() DESKeySpec ks = new DESKeySpec(bytes) SecretKeyFactory skf = SecretKeyFactory getInstance( DES ) SecretKey sk = skf generateSecret(ks) IvParameterSpec iv = new IvParameterSpec(bytes) ecip = Cipher getInstance( DES/CBC/PKCS Padding ) ecip init(Cipher ENCRYPT_MODE sk iv ) dcip = Cipher getInstance( DES/CBC/PKCS Padding ) dcip init(Cipher DECRYPT_MODE sk iv ) }catch(Exception ex) { ex printStackTrace() } } public static String encrypt(String content) throws Exception { byte[] bytes = ecip doFinal(content getBytes( ascii )) return CryptUtils byte hex(bytes) } public static String decrypt(String content) throws Exception { byte[] bytes = CryptUtils hex byte(content) bytes = dcip doFinal(bytes) return new String(bytes ascii ) } //test public static void main(String[] args) throws Exception { String password = gly ; String en = encrypt(password) System out println(en) System out println(decrypt(en)) } lishixinzhi/Article/program/Java/hx/201311/26449
java加密的几种方式
基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码)复杂的对称加密(DES、PBE)、非对称加密算法: DES(Data Encryption Standard,数据加密算法)PBE(Password-based encryption,基于密码验证)RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman)DH(Diffie-Hellman算法,密钥一致协议)DSA(Digital Signature Algorithm,数字签名)ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)代码参考:/** * BASE64加密 * * @param key * @return * @throws Exception */ public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); } /** * MD5加密 * * @param data * @return * @throws Exception */ public static byte[] encryptMD5(byte[] data) throws Exception { MessageDigest md5 = MessageDigest.getInstance(KEY_MD5); md5.update(data); return md5.digest(); } /** * SHA加密 * * @param data * @return * @throws Exception */ public static byte[] encryptSHA(byte[] data) throws Exception { MessageDigest sha = MessageDigest.getInstance(KEY_SHA); sha.update(data); return sha.digest(); } } /** * 初始化HMAC密钥 * * @return * @throws Exception */ public static String initMacKey() throws Exception { KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC); SecretKey secretKey = keyGenerator.generateKey(); return encryptBASE64(secretKey.getEncoded()); } /** * HMAC加密 * * @param data * @param key * @return * @throws Exception */ public static byte[] encryptHMAC(byte[] data, String key) throws Exception { SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); return mac.doFinal(data); }
智能门锁的密码是安全的吗?
安不安全,要从两个方面来看。第一个,锁本身。1.购买途径,如果购买的途径不正规,很可能就是山寨货;2.品牌力,要买大品牌,有公信力的品牌,比如三星、松下、Aqara;3.需要有足够的数据支撑,像Aqara 智能锁N200就通过了国家17项关于智能锁的专业测试,这些大品牌一般都能做到;4.锁本身具备足够高级别的安全系统,比如说防撬传感器、防猫眼开锁设计、抵抗小黑盒破解攻击、加密绑定、实时日记记录等等安防技术,看似微小,关键时刻是非常顶用的,不可小觑,据笔者了解,刚上市不久的Aqara智能锁 N200就有这些功能。第二个,就是自己是否有足够的安全防范意识。比如说,密码设置不能过于简单、隔一段时间就需要更改密码、不要跟别人说自家智能锁的密码、经常关注智能门锁传送过来的消息……这些都是生活中细节。我分享一组Aqara智能锁 N200的实时动态,大家可以看看。
问一下移动学习的平台哪家好呢?
如何选择一个移动学习平台,下面给五个建议:
一、产品功能
产品功能是企业选择移动学习平台时最重要的考量要素,因为企业培训管理是一项系统工程,包含需求分析、培训规划、培训组织与实施、培训效果评估等多个环节。对培训工作者来说,有太多太多的难题:如何控制预算、如何评估效果、如何激发学员学习热情、如何促进效果转化、如何提升绩效……一个好的平台可帮助企业节省大量的工作,甚至让培训效果事半功倍。
二、内容资源
平台易建,内容难求,这是每一个企业都头疼的问题。随着平板电脑和智能手机使用量的全面普及,移动学习应用将在企业培训中发挥更大的作用,拥有海量内容的移动学习APP平台将更受青睐。
三、平台接入能力
移动学习技术的应用不仅丰富了培训形式,还改善了员工学习效果,正成为企业加强员工学习的首选。但很多企业上线移动学习项目之后,都不同程度地遭遇到了水土不服的情况。如何让移动学习平台和企业原有体系实现无缝对接,成了众多企业的痛点。
四、信息安全
在这个没有隐私的时代,信息安全问题得到了越来越多人的关注,特别是企业级的移动学习平台,它拥有所有员工的个人信息和企业的所有知识产权课程,甚至部分商业机密,如果出现安全问题,必定会给企业带来不可估量的损失。
五、成本控制
购买一个企业级移动学习平台,市场上的价格动辄百万,成本压力过大,即使有企业愿意出高价引入移动学习平台,但后期的系统维护,平台运营都需要专业团队的技术保障,维护成本不仅高昂,而且难度巨大。
咨询一下,有没有免费apk加密服务的?
朋友你好,很高兴为你解答问题。几维安全安卓应用在线加密服务从去年上线至今,凭借零成本零门槛高强度的加密特点,获得众多中小企业和个人开发者的青睐,一方面保护了应用的源代码,避免攻击者或竞争对手窃取应用的核心技术;另一方面避免了盗版应用的产生。几维安全于2017-07-03对在线免费加密服务进行升级,现提供的免费加密功能包括:DEX文件加密、DLL文件加密、防二次打包、数据监测SDK。首先、普通类应用加密针对普通类应用,通过加密DEX文件,对Java层核心代码进行加密隐藏保护,避免DEX文件被Dex2jar和JD-GUI等工具逆向,分析Java代码的业务逻辑;其次防二次打包功能可有效避免盗版应用的生成,比如对加密的APP进行重新签名,如果签名文件与加密前的签名文件不一致,APP将被识别为盗版应用,无法正常运行。此时客户端APP的异常情况将会上报到几维安全的防御平台,即数据监测SDK,用户登录几维平台即可查看客户端的威胁数据。其次、 Unity3D手游加密针对U3d手游,在普通类应用加密的基础上,还将对DLL文件进行加密,即对C#脚本代码进行加密保护,整个加密过程还会对U3d引擎进行自定义加密,进一步避免攻击者通过U3d的解析函数来提取C#代码。在整个DLL加密基础之上,几维安全又使用源代码加密工具-《安全编译器》对U3d自定义引擎进行源码级的加密保护。如需了解企业级的加密强度与方案,请访问几维安全官网的相关安全产品。再次、使用方式几维安全针对免费用户提供两种形态的使用方式。第一种:《几维离线加密助手》,前往下载页面即可下载相关工具,支持Mac和Win两个平台,下载后注册登录即可使用。该助手将会自动上传APK,根据账号权限自动加密,完成后会自动下载,整个过程中支持断点续传。第二种:在线加密,前往注册登录之后,进去安卓应用加密页面,根据相关提示,上传APK,选择加密服务,开始加密,下载加密包。最后、注意事项待加密APK包是未经过其他加密处理的裸APK包,否则会加密失败2. 加密前需对APK包进行签名,加密后也需对APK进行重新签名,并且前后签名文件必须一致,否则被认为盗版,无法正常运行! 希望以上详细解答能够帮助到你。