本程序适用于产品的价格加密生成图片格式的价格,防止价格被抓去

using System;

/// <summary>
///TTBase64Encode 的摘要说明
/// </summary>
public class TTBase64Encode
{
public TTBase64Encode()
{
//
//TODO: 在此处添加构造函数逻辑
//
}

const string imgurlhost = "http://img.cblogs.com";
const string ttBASE_64_MAP_INIT = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
//ReadKeyFromFile(g_KeyLocation)
const string g_Key = "WERTYUIOFVGBNM663285716";

string ttnewline;

string[] ttBase64EncMap = new string[63];
string[] Base64DecMap = new string[127];

//初始化函数
public void ttinitCodecs()
{
// 初始化变量
ttnewline = "<P>" + Convert.ToChar(13) + Convert.ToChar(10);
dynamic ttmax = null;
dynamic ttidx = null;
ttmax = ttBASE_64_MAP_INIT.Length;

for (ttidx = 0; ttidx <= ttmax - 1; ttidx++)
{
ttBase64EncMap[ttidx] = ttBASE_64_MAP_INIT.Substring(ttidx + 1, 1);
}
for (ttidx = 0; ttidx <= ttmax - 1; ttidx++)
{

Base64DecMap[Asc(ttBase64EncMap[ttidx])] = ttidx;
}
}

/// <summary>
/// 转化为ascii
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
protected int stringtoascii(string s)
{
string ascii = "";
foreach (char c in s)
{
int str = (int)c;
ascii += str + ",";
} if (ascii.Length > 0)
{
ascii = ascii.Substring(0, ascii.Length - 1);
}
return Convert.ToInt32(ascii);
}
/// <summary>
/// 转化为Ascii
/// </summary>
/// <param name="character"></param>
/// <returns></returns>
public static int Asc(string character)
{
if (character.Length == 1)
{
System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
int intAsciiCode = (int)asciiEncoding.GetBytes(character)[0];
return (intAsciiCode);
}
else
{
throw new Exception("Character is not valid.");
}
}

///Base64加密函数
public object ttbase64Encode(string price)
{
string ttret = string.Empty;
if (price.Length == 0)
{
return "";
}

string ttplain = EnCrypt(price).ToString();

dynamic ttndx = null;
dynamic ttby3 = null;
dynamic ttfirst = null;
dynamic ttsecond = null;
dynamic ttthird = null;
ttby3 = (ttplain.Length / 3) * 3;
ttndx = 1;
while (ttndx <= ttby3)
{

ttfirst = Asc(ttplain.Substring(ttndx + 0, 1));
ttsecond = Asc(ttplain.Substring(ttndx + 1, 1));
ttthird = Asc(ttplain.Substring(ttndx + 2, 1));
ttret = ttret + ttBase64EncMap[(ttfirst / 4) & 63];
ttret = ttret + ttBase64EncMap[((ttfirst * 16) & 48) + ((ttsecond / 16) & 15)];
ttret = ttret + ttBase64EncMap[((ttsecond * 4) & 60) + ((ttthird / 64) & 3)];
ttret = ttret + ttBase64EncMap[ttthird & 63];
ttndx = ttndx + 3;
}

if (ttby3 < ttplain.Length)
{

ttfirst = Asc(ttplain.Substring(ttndx + 0, 1));
ttret = ttret + ttBase64EncMap[(ttfirst / 4) & 63];
if ((ttplain.Length % 3) == 2)
{

ttsecond = Asc(ttplain.Substring(ttndx + 1, 1));
ttret = ttret + ttBase64EncMap[((ttfirst * 16) & 48) + ((ttsecond / 16) & 15)];
ttret = ttret + ttBase64EncMap[((ttsecond * 4) & 60)];
}
else
{
ttret = ttret + ttBase64EncMap[(ttfirst * 16) & 48];
}
}

return ttret;
}
////Base64解密函数
public object ttbase64Decode(string ttscrambled)
{
string ttret = string.Empty;
if (ttscrambled.Length == 0)
{
return ttret;
}
dynamic ttrealLen = null;
ttrealLen = ttscrambled.Length;
while (ttscrambled.Substring(ttrealLen, 1) == "=")
{
ttrealLen = ttrealLen - 1;
}

dynamic ttndx = null;
dynamic ttby4 = null;
dynamic ttfirst = null;
dynamic ttsecond = null;
dynamic ttthird = null;
dynamic ttfourth = null;
ttret = "";
ttby4 = (ttrealLen / 4) * 4;
ttndx = 1;

while (ttndx <= ttby4)
{
ttfirst = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 0, 1))];
ttsecond = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 1, 1))];
ttthird = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 2, 1))];
ttfourth = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 3, 1))];

ttret = ttret + Convert.ToChar(((ttfirst * 4) & 255) + ((ttsecond / 16) & 3));
ttret = ttret + Convert.ToChar(((ttsecond * 16) & 255) + ((ttthird / 4) & 15));
ttret = ttret + Convert.ToChar(((ttthird * 64) & 255) + (ttfourth & 63));
ttndx = ttndx + 4;
}
if (ttndx < ttrealLen)
{
ttfirst = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 0, 1))];
ttsecond = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 1, 1))];
ttret = ttret + Convert.ToChar(((ttfirst * 4) & 255) + ((ttsecond / 16) & 3));
if (ttrealLen % 4 == 3)
{
ttthird = Base64DecMap[Asc(ttscrambled.Substring(ttndx + 2, 1))];
ttret = ttret + Convert.ToChar(((ttsecond * 16) & 255) + ((ttthird / 4) & 15));
}
}

return ttret;
}

/// <summary>
/// 加密调用方法入口
/// </summary>
/// <param name="strCryptThis"></param>
/// <returns></returns>
public object EnCrypt(string strCryptThis)
{
dynamic strChar = null;
dynamic iKeyChar = null;
dynamic iStringChar = null;
dynamic strEncrypted = null;
dynamic I = null;
dynamic leng = null;
leng = strCryptThis.Length;

for (I = 0; I < leng; I++)
{
iKeyChar = Asc(g_Key.Substring(I, 1));
iStringChar = Asc(strCryptThis.Substring(I, 1));
dynamic iCryptChar = iKeyChar ^ iStringChar;
strEncrypted += Convert.ToChar(iCryptChar).ToString();
}
return strEncrypted;

}

}

转载于:https://www.cnblogs.com/jqbird/archive/2011/03/16/1986096.html

C# 基于密钥的64位加密与解密方法(原创)相关推荐

  1. aes加密算法python实现_Python基于pycrypto实现的AES加密和解密算法示例

    本文实例讲述了Python基于pycrypto实现的AES加密和解密算法.分享给大家供大家参考,具体如下: 一 代码 # -*- coding: UTF-8 -*- import string imp ...

  2. CATIA V5 R19 WIN7 64位系统的安装方法

    CATIA V5 R19 WIN7 64位系统的安装方法 本文主要记录了根据参考文档安装Catia V5 R9的过程. 参考文档:CATIA V5 R19 WIN7 64位系统的安装方法 所需组件 表 ...

  3. 计算机是否支持64位操作系统,教你查看自己的电脑是否支持64位win7系统的方法...

    问:我想要安装windows7的64位系统,但是听说有的电脑并不能装64位系统,不知道自己的电脑是否支持64位win7系统,能不能告诉我要如何查看自己的电脑是否支持64位win7系统呢? 答:如果电脑 ...

  4. 在win10中开启64位ie浏览器的方法(IE11)

    ** 在64位win10中开启64位ie浏览器的方法(IE11) 步骤一 打开ie浏览器,设置->Internet选项->高级,找到,启用增强保护模式 和 针对增强保护模式启用64位进程, ...

  5. 介绍几种最常见的加密和解密方法

    加密与解密是通信中最常用的数据转换手段,加密的基本过程是应用加密算法与密钥对明文(尚未加密的原文)实施加密,转换成密文发送:解密的基本过程是接收到密文后,应用相应算法与同一密钥对密文解密,转换为明文: ...

  6. 常见的js加密/js解密方法

    常见的js加密/js解密方法 当今互联网世界中,数据安全是至关重要的.为了保护用户的隐私和保密信息,开发人员必须采取适当的安全措施.在前端开发中,加密和解密技术是一种常见的数据安全措施,其中 Java ...

  7. 一种客户端即时通信数据的加密和解密方法

    一种客户端即时通信数据的加密和解密方法  摘要 本发明适用于即时通信领域,提供了一种客户端即时通信数据的加密和解密方法,所述方法包括以下步骤:A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传 ...

  8. Windows应用技巧___Desktop 文件夹EFS加密常用解密方法

    Windows应用技巧导出证书和密钥---防止永久性不能访问加密文件 Windows应用扩展资料: Desktop 文件夹EFS加密常用解密方法 个人加密证书没有问题 Windows应用扩展资料: W ...

  9. phpc.sinaapp.com 加密的解密方法

    原文:phpc.sinaapp.com 加密的解密方法 很简单,用类似phpjm的解密方式,替换掉_inc.php中最后一个return中的eval为print就出来了.

最新文章

  1. 整理了一下SQL Server里面可能经常会用到的日期格式转换方法
  2. gbk与utf-8的区别
  3. linux 路由器去广告,linux – 如何正确发送路由器广告?
  4. php如何对几G的文本数据去重,Linux下导出数据库文件进行统计+去重
  5. python中文文本分析_python--文本分析
  6. 嘘!阿里程序媛上班的第一件事是...
  7. Kafka-Monitor
  8. 多线程与高并发(七):详解线程池 - 自定义线程池,JDK自带线程池,ForkJoin,源码解析等
  9. shiro 删除用户session_我的shiro之旅: 十二 shiro 踢出用户(同一用户只能一处登录)...
  10. 【Alpha阶段汇总】成果展示与体验总结
  11. LeetCode每日打卡 - 汉明距离
  12. Java swing实现简单的浏览器源码免费分享
  13. HTML+CSS+JS实现计算机功能
  14. Android中的短信收不到问题
  15. win7与winxp双系统安装后的引导过程
  16. java 加载java文件_如何用JAVA实现加载一个文件?
  17. (21)tar打包命令详解
  18. 从辉煌走向消亡(上)——小型机之王DEC公司
  19. 宽带升级后,手机能连WiFi,电脑却连不上的解决办法 TC7102WiFi
  20. caffe中的Accuracy

热门文章

  1. C#和SqlServer中处理时间格式问题
  2. WPF and Silverlight 学习笔记(九):WPF布局管理之Canvas、InkCanvas
  3. 图像转置的MATLAB和OpenCV源码
  4. linux命令大全 笔试,Linux基础及常用命令(笔试面试必备)
  5. SQL连接,Oracle关联加号(+)等相关知识
  6. 优秀的Java程序员必须了解GC的工作原理
  7. MxGraph从入门到精通之4:布局
  8. leetcode算法题--环形链表
  9. leetcode算法题--最大整除子集
  10. dataframe 筛选_使用pandas筛选出指定列值所对应的行