明文和密文是什么意思,以及flex与后台交互,Flex根据明文和密钥,采用DES加密算法进行加密,生成密文。

博客介绍了明文和密文的概念,强调了密文传输在安全性上的优势。内容中提到Flex利用DES加密算法,结合明文和密钥,生成加密后的密文,以提高数据在网络传输过程中的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         假设你的密码是:123456,明文传输,就是在网络中直接传送123456;

密文传输,就是加密以后在传送,比如加密后变成abcdef,对方收到后还需要解密还原成:123456;

因此密文安全性高,但是对系统要求也会高些。



Flex根据明文和密钥,采用DES加密算法进行加密,生成密文:


private function result_getUserInfo(event:ResultEvent):void {
                    //向result_getUserInfo方法(函数)里面添加

redId,ip,miwen,miwen0x,password,minwen,

                    //通过result_getUserInfo方法,从tomcat接收这些参数的数据

                    var red5Id:String;
                    var ip:String;
                    var miwen:String;
                    var miwen0x:String;
                    var password:String;  
                    var mingwen:String;
                   
                    var str:String = String(event.result);
                   
                    var d:ArrayCollection = new  ArrayCollection([com.adobe.serialization.json.JSON.decode(str)]);
                    Alert.show("str" +d);
                    var arr:Array=new Array();
                    var arrlist:Array=new Array();
              
                    ip=d[0].ip;  //red5 IP
                   
                    mingwen=d[0].mingwen; //明文
                    password=d[0].password; //密钥
                    red5Id=d[0].red5Id;  //red5 ID          
                    userId=d[0].userId;
                    yuntaitype=d[0].yuntaitype;
                   
                    for(var i:int=0;i<d[0].data.length;i++){
                         board.addItem({"board":d[0].data[i].videoNodeId,"boardName":d[0].data[i].videoNodeName});  //开发板列表
                    }
                   
                   
                    /*************对明文加密*************/
                    var b_ba:ByteArray=encrypt(password,mingwen);
                    //字符串形式的密文
   /*String str = new String(Base64.encode(baos.toByteArray()));
把  byte 数组  编写成 字符串   */
                    var b_ciphertext:String=Base64.encodeByteArray(b_ba);
                

                    miwen=b_ciphertext;
                    miwen0x=byteArrayTo16(b_ba);
                   
     //服务端调用客户端的onRep,offRep,fb1Rep方法,因为这些方法给服务器调用的,他们附着在conn.client上。
     //因为AS3的NetConnection是封闭的无法直接将方法附着在conn上面,但client是object类型的,
     //它是动态的,所以可以附着在conn.client上

                    client1.onRep=this.onRep;
                    client1.offRep=this.offRep;
                    client1.fblRep=this.fblRep;
                   
                    conn.client=this.client1;
                   
                    conn.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
                   
                   
                    conn.connect("rtmp://"+ip+":1935/chapter9",miwen0x,userId);
               }



/**
               * 把ByteArray转换为16进制的形式的字符串
               * @param ba
               * @param name
               * @return
               */         

               private function byteArrayTo16(ba:ByteArray):String{
                    ba.position=0;
                    var b_str:String="";
                    while (ba.bytesAvailable > 0) {
                         b_str+=ba.readUnsignedByte().toString(16);
                    }
                    return b_str;
               }

/**
               * 加密
               * @param key 加解密用的key
               * @param data 被加密的字符串
               * @return 加密后生成ByteArray数据
               */      
   
               private function encrypt(key:String,data:String):ByteArray{
                    trace("执行加密方法,key:",key,",被加密的字符串:",data);
                   
                    //实验化key的Bytearray对象,给DESKey使用
                    var b_keyByteArray:ByteArray=new ByteArray();
                    b_keyByteArray.writeUTFBytes(key);
                   
                    //实例化DESKey
                    var b_desKey:DESKey=new DESKey(b_keyByteArray);
                   
                    //不只是有ecb还有cbc,cfb等
                    var b_ecb:ECBMode=new ECBMode(b_desKey);
                    //把需要加密字符串转换为ByteArray

                    var b_byteArray:ByteArray=convertStringToByteArray(data);
                   
                    //执行加密

                    b_ecb.encrypt(b_byteArray);
                   
                    return b_byteArray;
               }

        public function convertStringToByteArray(str:String):ByteArray
               {
                    var bytes:ByteArray;
                    if (str)
                    {
                         bytes=new ByteArray();
                         bytes.writeUTFBytes(str);
                    }
                    return bytes;
               }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值