举例讲解returnValue的含义

本文介绍了JavaScript中html的window对象的returnValue属性,其目的是返回窗口值。通过示例展示了使用window.showModalDialog函数打开IE模式窗口时,利用该属性实现从模式窗口向父窗口传递值,returnValue还能是js数组传递大量数据。

returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用
window.showModalDialog函数打开一个IE的模式窗口(模式窗口知道吧,就是打开后不能操作父窗口,只能等模式窗口关闭时才能操作)时,用于返回窗口的值,下面举个例子:

------------------------------------------------------------------------------
//father.html
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language="javascript">

function showmodal(){
 var ret = window.showModalDialog("child.htm",null,"dialogWidth:350px;dialogHeight:350px;help:no;status:no");
 if (ret){alert('子窗口返回真!');
 }else{
  alert('子窗口返回假!');
 }

}

</script>
</HEAD>
<BODY>
<INPUT id=button1 type=button value=Button name=button1 onclick="showmodal();">

</BODY>
</HTML>

------------------------------------------------------------------------------
//child.html
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
<script language="javascript">
function trans(tag){

   if (tag==0){
     window.returnValue=false;
   } else{
     window.returnValue =true;
   }
   window.close();

}


</script>
</HEAD>
<BODY>

<INPUT id=button1 type=button value="返回真" name=button1 onclick="trans(1)">
<INPUT id=button2 type=button value="返回假" name=button2 onclick="trans(0)">

</BODY>
</HTML>
-----------------------------------------------------------------------------
这样一来可以实现从模式窗口向父窗口传递值的作用,
这个returnValue除了可以是布尔值,整型值等以外还可以是个js数组,用来传递大量数据。
具体showModalDialog等的用法,可以参考msdn。

### TEA加密算法的工作原理 TEA(Tiny Encryption Algorithm)是一种对称密钥分组密码算法,主要用于加密和解密数据。其核心特点包括对称密钥机制、块加密以及高效的计算性能[^1]。 #### 加密过程 TEA采用64轮迭代的方式完成加密操作。具体来说,输入的明文被分为两个32位的部分 \(V_0\) 和 \(V_1\),并通过一系列的逻辑运算逐步转换为密文。每一轮迭代都会利用一个子密钥进行变换,而这些子密钥是从初始密钥派生出来的[^1]。 - **初始化向量**:\(V_0, V_1\) - **密钥扩展**:通过特定的密钥调度函数生成用于各轮次的子密钥。 - **循环结构**:在每一回合中应用加法、异或(XOR)与移位(shift)等基本算术及布尔操作来混淆和平滑化数据流。 #### 解密过程 由于是对称加密方案的一部分,因此解密流程几乎完全镜像于加密过程——仅需调整某些参数顺序即可恢复原始消息内容[^1]。 以下是基于Python的一个简化版实现示例: ```python def tea_encrypt(v0, v1, key): delta = 0x9E3779B9 sum_value = 0 for _ in range(32): # 半轮次数 sum_value = (sum_value + delta) & 0xFFFFFFFF v0 = (v0 + (((v1 << 4) ^ (v1 >> 5)) + v1 ^ sum_value + (key[sum_value & 3])) & 0xFFFFFFFF v1 = (v1 + (((v0 << 4) ^ (v0 >> 5)) + v0 ^ sum_value + (key[(sum_value>>11) & 3])) & 0xFFFFFFFF return v0, v1 def tea_decrypt(v0, v1, key): delta = 0x9E3779B9 sum_value = (delta * 32) & 0xFFFFFFFF for _ in range(32): v1 = (v1 - (((v0 << 4) ^ (v0 >> 5)) + v0 ^ sum_value + (key[(sum_value>>11) & 3])) & 0xFFFFFFFF v0 = (v0 - (((v1 << 4) ^ (v1 >> 5)) + v1 ^ sum_value + (key[sum_value & 3]))) & 0xFFFFFFFF sum_value = (sum_value - delta) & 0xFFFFFFFF return v0, v1 ``` 注意此版本仅为教学目的设计,并未考虑实际应用场景下的安全需求等问题[^1]。 ### 使用场景分析 尽管TEA因其简易性和速度优势受到关注,但它并非无懈可击。正如其他类型的对称加密方法一样,可能存在诸如弱密钥攻击之类的隐患[^2]。所以在部署之前务必充分评估风险并采取适当措施加以缓解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值