数据加密与解密的简单原理

4 篇文章 0 订阅

当下网络上频频报道某网站用户密码泄漏,用户数据被黑客下载等等新闻。对用户的敏感数据、私隐没有任何的安全可言。做为开发者我们应该对用户的敏感信息负责,用户的隐私需要进行加密之后再存储,读取需要解密才能正常显示,以增加敏感信息泄漏的难度。不知道加密算法及盐密码,就算数据库被下载也可保护用户数据的相对安全不被别人获取。我设计的加密和解密的算法如下,仅为大家提供一个参考。读者可以自行改进设计出属于自己的加解密算法,以保护用户的数据安全。

<?php
class sys {
	
	/**
	 * 使用盐对内容加密
	 * @param string $context 需要加密的数据
	 * @param string $mask 密码盐
	 * @return string
	 */
	public static function security_encode( $context, $mask ) {
		$new_mask_word = '';
		$new_word      = '';
		$word_length   = strlen( $context );
		$mask_length   = strlen( $mask );
		$mask          = str_split( $mask );
		$word          = str_split( $context );
		$loop          = 0;
		
		for( $i=0; $i<$word_length; $i++ ) {
			if( $loop == $mask_length ){
				$loop = 0;
			}
			$new_mask_word .= $mask[$loop];
			$loop++;
		}
		
		for( $i=0; $i<$word_length; $i++) {
			$new_word .= chr( ord($word[$i])+ord($new_mask_word[$i]) );
		}
		return $new_word;
	}
	
	/**
	 * 使用盐对内容解密
	 * @param string $context 需要解密的数据
	 * @param string $mask 密码盐
	 * @return string
	 */
	public static function security_decode( $context, $mask ) {
		$new_mask_word = '';
		$new_word      = '';
		$word_length   = strlen( $context );
		$mask_length   = strlen( $mask );
		$mask          = str_split( $mask );
		$word          = str_split( $context );
		$loop          = 0;
		
		for( $i=0; $i<$word_length; $i++ ) {
			if( $loop == $mask_length ){
				$loop = 0;
			}
			$new_mask_word .= $mask[$loop];
			$loop++;
		}
		
		for( $i=0; $i<$word_length; $i++) {
			$new_word .= chr( ord($word[$i])-ord($new_mask_word[$i]) );
		}
		return $new_word;
	}
}

实现的原理其实很简单,就是使用掩码对数据的asscii码进行运算生成新的字符串。盐密码可以全站统一配置,也可针对每一条数据另外存放不同的盐值以增加解密的难度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yagas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值