导航:首页 > 操作系统 > androidrc4加密

androidrc4加密

发布时间:2022-06-14 01:45:13

㈠ 可以给我一个用RC4加密明文的例子吗 谢谢啊

运行环境:Microsoft Visual Studio 6.0
语言:C++

#include<stdio.h>
#include<string>
void decrypt(char cipher[]);///////////////////////////////解密过程函数,根据输入密钥再一次生成密钥流
void main()
{
printf("**************************RC4加解密程**************************\n");
char choose1,choose2;
do{
int s[256],t[256];
char k[256];/////////////////用户输入的密钥
char plaintext[1024],ciphertext[1024];
printf("输入密钥:\n");
gets(k);
for(int i=0;i<256;i++)//////////////给字节状态矢量和可变长的密钥数组赋值
{
s[i]=i;
t[i]=k[i%strlen(k)];
}
int j=0;
for(i=0;i<256;i++) //////使用可变长的密钥数组初始化字节状态矢量数组s
{
int temp;
j=(j+s[i]+t[i])%256;
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
printf("\n输入要加密的字符串:\n");
gets(plaintext);
int m,n,key[256],q;
m=n=0;
printf("\n得到密文:\n");
for(i=0;i<strlen(plaintext);i++)/////////////由字节状态矢量数组变换生成密钥流并对明文字符进行加密
{
int temp;

m=(m+1)% 256;
n=(n+s[n])% 256;
temp=s[m];
s[m]=s[n];
s[n]=temp;
q=(s[m]+s[n])%256;
key[i]=s[q];
ciphertext[i]=plaintext[i]^key[i];
printf("%c",ciphertext[i]);
}
ciphertext[i]='\0';
//解密
printf("\n是否对上面的密文进行解密?(y/n)\n");
scanf("%c",&choose2);
getchar();
while(choose2=='y'||choose2=='Y')
{
decrypt(ciphertext);///////////////////////////////解密过程函数
choose2='n';
}
printf("\n是否希望继续使用程序?(y/n)\n");
scanf("%c",&choose1);
getchar();
}
while(choose1=='y'||choose1=='Y');
printf("\n****************************程序结束*****************************");
system("pause");
}
//解密函数,密钥流的生成与加密相同
void decrypt(char cipher[])
{
int s[256],t[256];
int i;
char k[256];/////////////////用户输入的密钥
char plaintext[1024];
printf("\n输入密钥:\n");
gets(k);
for(i=0;i<256;i++)//////////////给字节状态矢量和可变长的密钥数组赋值
{

s[i]=i;
t[i]=k[i%strlen(k)];
}
int j=0;
for(i=0;i<256;i++) //////使用可变长的密钥数组初始化字节状态矢量数组s
{
int temp;
j=(j+s[i]+t[i])%256;
temp=s[i];
s[i]=s[j];
s[j]=temp;
}
int m,n,key[256],q;
m=n=0;
printf("\n解密后所得到明文是:\n");
for(i=0;i<strlen(cipher);i++)/////////////由字节状态矢量数组变换生成密钥流并对密文字符进行解密
{
int temp;
m=(m+1)% 256;
n=(n+s[n])% 256;
temp=s[m];
s[m]=s[n];
s[n]=temp;
q=(s[m]+s[n])%256;
key[i]=s[q];
plaintext[i]=cipher[i]^key[i];
printf("%c",plaintext[i]);
}
printf("\n");
}

㈡ uniapp如何加密解密rc4

uniapp如何加密解密rc4步骤:
1、第一步是生成S盒
2、初始排列S然后用T产生S的初始置换.从S到S255,对每个Si,根据由Ti确定的方案,将Si置换为S中的另一字节
3、产生密钥流矢量S一旦完成初始化,输人密钥就不再被使用。
4、最后进行异或运算data与key按位异或操作

㈢ 有关RC4加密,我这儿有个简单的例子,帮我解下(原理类,非语言)

是这个意思吗:
S(明文): 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
K(密钥): 5 6 7 5 6 7 5 6 7 14 5 6 4 5 6 4

android https 支持哪些标准

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的安全全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。
HTTPS和HTTP的区别:
https协议需要到ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全
HTTPS解决的问题:
1
. 信任主机的问题. 采用https 的server 必须从CA 申请一个用于证明服务器用途类型的证书. 改证书只有用于对应的server
的时候,客户度才信任次主机. 所以目前所有的银行系统网站,关键部分应用都是https 的. 客户通过信任该证书,从而信任了该主机.
其实这样做效率很低,但是银行更侧重安全. 这一点对我们没有任何意义,我们的server ,采用的证书不管自己issue
还是从公众的地方issue, 客户端都是自己人,所以我们也就肯定信任该server.
2 . 通讯过程中的数据的泄密和被窜改
1. 一般意义上的https, 就是 server 有一个证书.
a) 主要目的是保证server 就是他声称的server. 这个跟第一点一样.
b) 服务端和客户端之间的所有通讯,都是加密的.
i. 具体讲,是客户端产生一个对称的密钥,通过server 的证书来交换密钥. 一般意义上的握手过程.
ii. 加下来所有的信息往来就都是加密的. 第三方即使截获,也没有任何意义.因为他没有密钥. 当然窜改也就没有什么意义了.
2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书.
a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码, 还有一个CA 认证过的身份. 应为个人证书一般来说上别人无法模拟的,所有这样能够更深的确认自己的身份.
b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘作为一个备份的载体.
HTTPS 一定是繁琐的.
a) 本来简单的http协议,一个get一个response. 由于https 要还密钥和确认加密算法的需要.单握手就需要6/7 个往返.
i. 任何应用中,过多的round trip 肯定影响性能.
b) 接下来才是具体的http协议,每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密.
i. 尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU,为此有专门的SSL 芯片. 如果CPU 信能比较低的话,肯定会降低性能,从而不能serve 更多的请求.
ii. 加密后数据量的影响. 所以,才会出现那么多的安全认证提示

㈤ 求大神用java实现RC4的加密,解密功能,高分悬赏.

importjavax.crypto.Cipher;
importjavax.crypto.spec.SecretKeySpec;
importjavax.xml.bind.DatatypeConverter;

publicclassTest{
publicstaticvoidmain(String[]args)throwsException{
Ciphercipher=Cipher.getInstance("RC4");
Stringpwd="123456";
Stringptext="HelloWorld你好";
SecretKeySpeckey=newSecretKeySpec(pwd.getBytes("UTF-8"),"RC4");

cipher.init(Cipher.ENCRYPT_MODE,key);
byte[]cdata=cipher.update(ptext.getBytes("UTF-8"));
//解密
cipher.init(Cipher.DECRYPT_MODE,key);
byte[]ddata=cipher.update(cdata);
System.out.println("密码:"+pwd);
System.out.println("明文:"+ptext);
System.out.println("密文:"+DatatypeConverter.printHexBinary(cdata));
System.out.println("解密文:"+newString(ddata,"UTF-8"));
}
}
密码:123456
明文:HelloWorld你好
密文:
解密文:HelloWorld你好

RC4已经不太安全,只能用于一般加密,不能用于金融等紧要场合。

㈥ rc4 加密和解码 一样吗

RC4 是流式加密算法
加密,解密是同一个函数

㈦ 求shad0ws0cks,安卓2.3可用,带RC4 MD5加密,求好心人帮帮忙。

被骗什么了?如果是骗子骗了你的机票钱,没出票的话是查不到你订的机票的,没出怎么查,你详细说说,看看能不能帮到你帮你查了一下今天全天上海浦东-新加坡的航班时刻表,不知道对你有没有帮助10月9日(FRI)上海浦东-新加坡*09OCT(FRI)*PVGSIN1SQ827DS*^ME>VATAMAHAWAGALAKA202MU567DS#^LE>--3SQ831DS*^ME>#^DE>MANARAS7VSTSWSXSGSQAUSI5ZQT1--5SQ833DS*^ME>*+17720^ME>EAQANAVATAMAHAWAGALAKA207+MU543DS#+13400^SE>--

㈧ 各位,这就是RC4加密么

位密码算法:DES 三重DES(Triple-DES)仍然是很安全的,但是也只是在别无他法的情况下的一个较好的选择。显然高级加密标准(AES)是一个更好的加密算法,NIST用AES代替Triple-DES作为他们的标准(下面有更详细的讨论)。其他较好的算法包括另外两个AES的变种算法Twofish和Serpent-也称为CAST-128,它是效率和安全的完美结合。这几个算法不仅比DES更安全,而且也比DES的速度更快。为什么要使用一些又慢又不安全的算法呢?SHA1是一个哈希函数,而不是一个加密函数。作为一个哈希函数,SHA1还是相当优秀的,但是还需要几年的发展才能用作加密算法。如果你正在设计一个新系统,那么谨记你可能会在若干年后用SHA1代替目前的算法。我再重复一遍:只是可能。呵呵,希望能帮到你!谢谢望采纳哦!

㈨ 求一个实现RC4加密算法的第三方包,JAVA的

 曾经实验室的带动,加上最近在上网络安全与管理的专业选修课,对加密算法有了浓厚的兴趣。老师留了一次作业,用自己的学号为密钥,加密一句话,使用RC4加密算法。
   图书馆查找资料,发现RC4算法还是比较容易理解的。于是动手实现出来。不多说废话,还是贴代码吧。我写的注释还算清楚。
   先贴一个含main函数的核心算法类,有测试,可以看看最后输出了什么^.^
 
import java.io.UnsupportedEncodingException;
public class Arithmetic {
 
 
 public static void swap(int x,int y){
  int temp;
  temp=x;
  x=y;
  y=temp;
 }
 
 public static void main(String[] args) throws UnsupportedEncodingException {
   
  
  
  //  密钥(我的学号)
  byte K[]={0,6,1,6,1,0,0,4};
  
  int S[]=new int[256];//状态矢量S
  int T[]=new int[256];//临时矢量T
//  初始化状态矢量S,同时生成临时矢量T 
  for(int i=0;i<256;i++){
   S[i]= i;
   T[i]=K[i%K.length];
  }
  //用T使S置换
  {
    int j=0;
    for(int i=0;i<256;i++){
       j=(j+(int)S[i]+(int)T[i])%256;
       swap(S[i],S[j]);
     }
  }
  
  
  int i = 0,j=0;
  boolean tt=true;
  int c=0;
  int t;
  byte k;//密钥流的当前字节
  byte C[]="套范续".getBytes();
  
  System.out.println(C[3]);
  byte P[]=new byte[C.length];
  while(c<6){
   i=(i+1)%256;
   j=(j+S[i])%256;
   swap(S[i],S[j]);
   t=((S[i]+S[j])%256);
   k=(byte) S[t];
//   C[c]=(byte) (k^P[c]);
//     System.out.print(C[c]+" ");
   P[c]=(byte) (k^C[c]);
     System.out.print(P[c]+" ");
   c++;
  }
   System.out.println(new String(P,"GBK")); 
//  byte rr[]={65};
//    System.out.println(new String(rr)); 
 }
}
  再来贴一下以界面展示的代码,比较长。用的就是普通的jsp+servlet。
核心类:
public class RC4 {
// 密钥(我的学号)
 byte K[]={0,6,1,6,1,0,0,4};
 
  void swap(int x,int y){
  int temp;
  temp=x;
  x=y;
  y=temp;
 }
 
 public String encrypt(String plaintext){
  String ciphertext=new String();
  int S[]=new int[256];//状态矢量S
  int T[]=new int[256];//临时矢量T
//  初始化状态矢量S,同时生成临时矢量T 
  for(int i=0;i<256;i++){
   S[i]= i;
   T[i]=K[i%K.length];
  }
  //用T使S置换
  {
    int j=0;
    for(int i=0;i<256;i++){
       j=(j+(int)S[i]+(int)T[i])%256;
       swap(S[i],S[j]);
     }
  }
  
  
  int i = 0,j=0;
  int c=0;
  int t;
  byte k;//密钥流的当前字节
  byte P[]=plaintext.getBytes();
  byte C[]=new byte[P.length];
  while(c<P.length){
   i=(i+1)%256;
   j=(j+S[i])%256;
   swap(S[i],S[j]);
   t=((S[i]+S[j])%256);
   k=(byte) S[t];
   C[c]=(byte) (k^P[c]);
     System.out.print(C[c]+" ");
   c++;
  }
   System.out.println(new String(C)); 
  ciphertext=new String(C);
  return ciphertext;
  
 }
 
 
 
}
 页面:
home.jsp
<%@ page language="java" import="java.util.*,core.ChangeCharset" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'home.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 
 <link rel="stylesheet" type="text/css" href="styles.css">
 
  <script type="text/javascript">
     function doencrypt(){
        document.form1.domethod.value="encrypt";
        document.form1.submit();
     }
     function dodecipher(){
        document.form1.domethod.value="decipher";
        document.form1.submit();
     }
 
 
 
  </script>
  </head>
 
  <body>
 
 
  <%@ include file="header.jsp" %>
  <div id="show" >
 
  <form name="form1" method="post" action="Manage">
  <input type="hidden" name="domethod" />
    请输入一句话:<input type="text" name="plainText" />
   <a href="javascript:void(0)" onclick="javascript:doencrypt();return false;">加密</a>
     </br>
     </br>
     <%String cipher=(String)request.getAttribute("cipher");
       if(cipher==null){
           cipher="";
       }
       String plain1=(String)request.getAttribute("plain1"); 
       if(plain1==null){
           plain1="";
       } 
      %>
    所得密文:<input type="text" name="cipherText" value="<%=cipher %>"  />
    <a href="javascript:void(0)" onclick="javascript:dodecipher();return false;">解密</a>
     </br>
     </br>
    所得明文:<input type="text" name="getPlain" value="<%=plain1 %>"  />
    </form>
    </div>
   <%@ include file="footer.jsp" %>
  </body>
</html>
header.jsp(这个没什么意思,但还是给出来吧,给初学html的朋友一些借鉴)
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<div id="header" align="center">
 
 <h1>RC4加密算法测试系统</h1>
 <hr>

</div>
footer.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<div align="center">
    <hr>
    <table>
       <tr><td>Powered by Tasu</td></tr>
       <tr><td>Copyright@Tasusparty Studio 2009-2010 All rights reserved</td></tr>
   
    </table>
</div>
styles.css(给出来省事一些,诸位看起来方便)
body{
margin:0px;
padding:0px;
background: #E6EAE9;
font-family: "Lucida Sans Unicode", "宋体", "新宋体", Arial, Verdana, serif;
color:#4f6b72;
font-size:12px;
line-height:150%;
}
#show{
 margin:0px auto;
 padding:0px;
 width:200px;
 height:400px
 }
#header{
margin:30px auto;
}

 
处理的Servlet:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import core.ChangeCharset;
import core.RC4;
public class Manage extends HttpServlet {
 
 public Manage() {
  super();
 }
 
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }
 
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request,response);
 }
 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  request.setCharacterEncoding("GBK"); //设置输入编码格式
  response.setContentType("text/html;charset=GBK"); //设置输出编码格式
        String domethod=request.getParameter("domethod");
       
        if(domethod.equals("encrypt")){
  String plain=request.getParameter("plainText");
  RC4 rc4=new RC4();
  String cipher=rc4.encrypt(plain);
  System.out.println(cipher);
  request.setAttribute("cipher", cipher);
  request.getRequestDispatcher("home.jsp").forward(request, response);
        }
        if(domethod.equals("decipher")){
      String cipher=request.getParameter("cipherText");
      RC4 rc4=new RC4();
      String plain=rc4.encrypt(cipher);
      
      request.setAttribute("plain1", plain);
      request.getRequestDispatcher("home.jsp").forward(request, response);
            }
 }
 
 public void init() throws ServletException {
  // Put your code here
 }
}(中网互赢 手机客户端)

㈩ RC4的RC4加密算法

RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ronald Rivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。RC4起初是用于保护商业机密的。但是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。RC4也被叫做ARC4(Alleged RC4——所谓的RC4),因为RSA从来就没有正式发布过这个算法。

阅读全文

与androidrc4加密相关的资料

热点内容
应用和服务器是什么意思 浏览:483
程序员需要知道的网站 浏览:711
微信支付页面加密码怎么加 浏览:57
网络加密狗问题 浏览:698
cnc曲面编程实例 浏览:168
什么app零粉分发视频有收益 浏览:164
肯尼亚程序员 浏览:640
新科源码 浏览:661
如何判断服务器有没有带宽 浏览:43
天正建筑批量删除命令 浏览:96
cad最下面的一排命令都什么意思 浏览:456
pythonimportcpp 浏览:852
W10的系统怎么给U盘加密 浏览:372
华为手机代码编程教学入门 浏览:764
和彩云没会员怎样解压 浏览:636
androidimageview保存 浏览:389
新买店铺什么服务器 浏览:885
文件夹能直接刻录吗 浏览:495
androidxmpp删除好友 浏览:971
javac哪个前景好 浏览:431