用java程序进行sha1加密,怎么弄

用java程序进行sha1加密,怎么弄,第1张

使用下面的语句即可:

DigestUtilsshaHex(要加密的字符);

加密参数最好用字节数组,毕竟SHA1算法是使用字节为单位进行运算的,字符串转字节还与字符编码有关。

import javautilScanner;

public class Cipher

{

public static void main(String [] args)

{

Scanner kb=new Scanner(Systemin);

Systemoutprintln("Please enter a String: ");

String str=kbnextLine();

Systemoutprintln("Please enter the offset value: ");

int offset=kbnextInt();

Cipher c = new Cipher(); //new个类Cipher的实例

Systemoutprintln(cencrypt(str, offset)); //执行encrypt()方法,并输出

}

public String encrypt(String str,int offset)

{

String result = str; //这里你要再定义一个返回结果的字符串Stringreplace()方法只是返回改过后的字符串,并不修改原字符串。

for(int i=0;i<strlength();i++)

{

int a=(int)strcharAt(i)+offset;

if(a>126)

{

result = strreplace(strcharAt(i),(char)(a-95));

}

else

result = strreplace(strcharAt(i),(char)(a));

}

//return str; //永远都是返回原来的字符串

return result;

}

}

至于你说的!和?的问题,你应该是直接输出a了,看到的是?,因为a是128,超过了127,所以输出的是?,超过127的都是?,不信你可以试试129等等。但替换字符的时候你用的是a-95,是正确的,用!替换}。

基本思路简单,

首先用流把文件内容读出来,

然后把内容转成acsii码,

之后移位,可以全文用一种移位,也可以每行或者每个字用一种移位

最后用流写回去即可

比如 "我" 这个字的ascii码是\u6211,加1移位成\u6212(戒),这样一片文章就面目全非了当然移位成什么看你自己的移位算法,然后再转成汉字写回去

package test;

import javaioIOException;

public class Native2ascii {

private static final String java_path = "G:\\Java\\jdk 16";//你的jdk的绝对路径

private static final String target_file = "C:\\atxt"; //原始文本的完整路径

private static final String result_file = "C:\\btxt";//转码后的路径

private static final String back_file = "C:\\ctxt";//转回的路径

private static final String encoding = "GBK";// 编码

public static void native2ascii()

{

try {

RuntimegetRuntime()exec(java_path+"\\bin\\native2asciiexe -encoding "+encoding+" "+target_file+" "+result_file);

//读取btxt中的内容进行移位,我的没有移位所以写回ctxt中还能够看懂

RuntimegetRuntime()exec(java_path+"\\bin\\native2asciiexe -reverse "+result_file+" "+back_file);

} catch (IOException e) {

eprintStackTrace();

}

}

public static void main(String arg[]){

native2ascii();

}

}

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

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

1、核心技术窃取

2、核心业务破解

3、通信模块破解

4、API接口暴露

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

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

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

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

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

参考资料,点这里----java加密方式:网页链接

import javasecurity;

import javaxcrypto;

/

本例解释如何利用DES私钥加密算法加解密

@author Devon

@version 10 04/03/10

/

public class SingleKeyExample {

public static void main(String[] args) {

try {

String algorithm = "DES"; //定义加密算法,可用 DES,DESede,Blowfish

String message = "Hello World 这是待加密的信息";

// 生成个DES密钥

KeyGenerator keyGenerator = KeyGeneratorgetInstance(algorithm);

keyGeneratorinit(56); //选择DES算法,密钥长度必须为56位

Key key = keyGeneratorgenerateKey(); //生成密钥

// 生成Cipher对象

Cipher cipher = CiphergetInstance("DES");

//用密钥加密明文(message),生成密文(cipherText)

cipherinit(CipherENCRYPT_MODE, key); // *** 作模式为加密(CipherENCRYPT_MODE),key为密钥

byte[] cipherText = cipherdoFinal(messagegetBytes()); //得到加密后的字节数组

Systemoutprintln("加密后的信息: " + new String(cipherText));

//用密钥加密明文(plainText),生成密文(cipherByte)

cipherinit(CipherDECRYPT_MODE, key); // *** 作模式为解密,key为密钥

byte[] sourceText = cipherdoFinal(cipherText); //获得解密后字节数组

Systemoutprintln("解密后的信息: " + new String(sourceText));

} catch (Exception ex) {

exprintStackTrace();

}

}

}

/

@author Devon

/

import javasecurity;

import javasecurityspec;

import javaxcrypto;

public class PairKeyExample {

public static void main(String argv[]) {

try {

String algorithm = "RSA"; //定义加密算法,可用 DES,DESede,Blowfish

String message = "张三,你好,我是李四";

//产生张三的密钥对(keyPairZhang)

KeyPairGenerator keyGeneratorZhang =

KeyPairGeneratorgetInstance(algorithm); //指定采用的算法

keyGeneratorZhanginitialize(1024); //指定密钥长度为1024位

KeyPair keyPairZhang = keyGeneratorZhanggenerateKeyPair(); //产生密钥对

Systemoutprintln("生成张三的公钥对");

// 张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节

byte[] publicKeyZhangEncode = keyPairZhanggetPublic()getEncoded();

//通过网络或磁盘等方式,把公钥编码传送给李四

//李四接收到张三编码后的公钥,将其解码

KeyFactory keyFacoryLi = KeyFactorygetInstance(algorithm); //得到KeyFactory对象

X509EncodedKeySpec x509KeySpec =

new X509EncodedKeySpec(publicKeyZhangEncode); //公钥采用X509编码

PublicKey publicKeyZhang = keyFacoryLigeneratePublic(x509KeySpec); //将公钥的KeySpec对象转换为公钥

Systemoutprintln("李四成功解码,得到张三的公钥");

//李四用张三的公钥加密信息,并发送给李四

Cipher cipher = CiphergetInstance("RSA/ECB/PKCS1Padding"); //得到Cipher对象

cipherinit(CipherENCRYPT_MODE, publicKeyZhang); //用张三的公钥初始化Cipher对象

byte[] cipherMessage = cipherdoFinal(messagegetBytes()); //得到加密信息

Systemoutprintln("加密后信息:" + new String(cipherMessage));

Systemoutprintln("加密完成,发送给李四");

//张三用自己的私钥解密从李四处收到的信息

cipherinit(CipherDECRYPT_MODE, keyPairZhanggetPrivate()); //张三用其私钥初始化Cipher对象

byte[] originalMessage = cipherdoFinal(cipherMessage); //得到解密后信息

Systemoutprintln("张三收到信息,解密后为:" + new String(originalMessage));

} catch (Exception ex) {

exprintStackTrace();

}

}

}

import javaioFile;

import javaioFileInputStream;

import javaioFileOutputStream;

public class XorExample {

public static final byte XOR_CONST = 0X12;

public static void main(String[] args) throws Exception {

File src = new File("level1txt");

File dest = new File("level2txt");

File dest2 = new File("level3txt");

xorEn(src, dest);

xorEn(dest, dest2);

}

/

异或的一个特点: a^b = c c^b = a

所以简单点,这里的加解密都用一个函数就行了

@param src

@param dest

@throws Exception

/

public static void xorEn(File src, File dest) throws Exception {

// 文件不存在或为文件夹就不判断了

FileInputStream fis = new FileInputStream(src);

FileOutputStream fos = new FileOutputStream(dest);

byte[] bs = new byte[1024];

int len = 0;

while ((len = fisread(bs)) != -1) {

for (int i = 0; i < len; i++) {

bs[i] ^= XOR_CONST;

}

foswrite(bs, 0, len);

}

fosclose();

fisclose();

}

}

以上就是关于用java程序进行sha1加密,怎么弄全部的内容,包括:用java程序进行sha1加密,怎么弄、java实现字母移位加密的程序!!急!!求解!、怎样用java程序加密解密文本文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10173992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存