金沙国际官网_金沙国际平台登录

因为这个金沙国际官网_金沙国际平台登录网站与很多的大型澳门赌场都有合作,金沙国际官网_金沙国际平台登录尽职尽责,高效执行,保持好奇心,不断学习,追求卓越,点击进入金沙国际官网_金沙国际平台登录马上体验吧,所以现在也正式地开始了营业。

您的位置:金沙国际官网 > 编程 > 一种将文本编码为图片格式的方法,找出总分最

一种将文本编码为图片格式的方法,找出总分最

发布时间:2019-11-03 10:36编辑:编程浏览(79)

    给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。

    cookie和session

    世界上的文字可以被四个字节完全覆盖,也就是UTF-32,其他都是变长的格式。而恰好ARGB加起来四个字节,于是完全可以把一个字符映射为一个像素点嘛!

    输入格式:

    输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。

    一、  cookie

    图片 1

    cookie是保存在浏览器本地的键值对。浏览器和服务器之间传输时,它是在响应头里包含的。浏览器和服务器端都可以设置cookie。浏览器使用js向服务器端传送或修改cookie,例如在浏览器控台写document.cookie=”user=tom”。

    服务器端设置cookie的各项参数:

    request.set_cookie(key,value,max_age=,expires=,path=’/’,domain=’’,secure=False,httponly=False)

    max_age:cookie的有效期,单位为秒,但是IE不认

    expires:cookie的有效期,值为datatime类型。

    eg:设置cookie有效期为7天

    expires=datatime.datatime.utcnow()+datatime.timedelta(day=7)

    path:设置该cookie只在该路径下生效

    domain:设置在该二级域名下生效

    secure:当网站使用https时需改为Ture,默认为Flase。

    httponly:只允许使用http协议访问。但是在浏览器端认可使用js覆盖原值,达到修改的目的。

    并且图片上的字节可以再次加密,非常好玩!我仅演示的超级无敌简单的取反操作。

    输出格式:

    在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。

    二、  session

    图片 2

    session是保存于服务器端的键值对。保存形式是{“sessionid”:{“username”:“tom”,“passwd”:“123456”,}},sessionid代表用户的身份,session在查找时是根据sessionid来查找。查找到的value存储着用户的个人信息。sessionid是用户访问服务器时Django自动创建分配的,存于cookie中,所以session需要依赖cookie。在数据库中,key和value也是已加密的形式存储。同一个用户只产生一条数据,对于失效的session会自动更新而非重新创建。session默认有效期为半个月。

    session的简单操作:

    获取session:request.session[key]

    设置session:request.session[key]=value

    删除session:del request.session[key]

    注:删除实际上并非真正的删除,而是将数据库的session_data更新为其他的值。

    设置session过期时间:

    request.session.set_expiry(value)

    如果value是个整数,session会在这些秒数后失效;

    如果value是datatime或timedelta,session会在这个时间后失效;

    如果value是0,则在用户关闭浏览器后失效;

    如果value是none,session会在依赖全局session失效策略。

    session失效并没有从数据库中删除。

     

    输入样例:

    5
    00001 huanglan 78 83 75
    00002 wanghai 76 80 77
    00003 shenqiang 87 83 76
    10001 zhangfeng 92 88 78
    21987 zhangmeng 80 82 75
    

    三、实例cookie和session配合的登录验证

    请移步:

    我自己习惯看方形的图片,于是开平方取整,如果字符数量不足就从字符本身随机取一段,这是为了图片尾部不会几个像素留白,炒鸡不美观,以白色(0xFFFFFFFF)作为终止字符。

    输出样例:

    zhangfeng 10001 258
    

     

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 
     4 typedef struct _info {
     5     char number[6];
     6     char name[11];
     7     int score[3];
     8 } Info;
     9 
    10 int main(int argc, char const *argv[])
    11 {
    12     int n;
    13     Info *p = NULL;
    14 
    15     scanf("%d", &n);
    16 
    17     p = (Info*)malloc(sizeof(Info)*n);
    18 
    19     for ( int i = 0; i < n; i++ ) {
    20         scanf("%s %s %d %d %d", 
    21             p[i].number, p[i].name, &p[i].score[0], &p[i].score[1], &p[i].score[2]);
    22     }
    23     int maxid = 0;
    24     for ( int i = 1; i < n; i++ ) {
    25         int sum1, sum2;
    26         sum1 = p[i].score[0] + p[i].score[1] + p[i].score[2];
    27         sum2 = p[maxid].score[0] + p[maxid].score[1] + p[maxid].score[2];
    28         if ( sum1 > sum2 ) {
    29             maxid = i;
    30         }
    31     }
    32     int sum = p[maxid].score[0] + p[maxid].score[1] + p[maxid].score[2];
    33     printf("%s %s %dn", p[maxid].name, p[maxid].number, sum);
    34     free(p);
    35     return 0;
    36 }
    

     

    四、调试

    浏览器报错:'WSGIRequest' object has no attribute 'session' 

    解决方案:由于在pycharm中写session时不提示session的相关操作,所以将settings.py中的中间件由MIDDLEWARE改为MIDDLEWARE_CLASSES。实际上,根据其他博客所写,这是Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CLASSES, 1.10之后,为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑。 (参考文章:http://blog.csdn.net/xiongjiezk/article/details/53220302)
    

     

    static Bitmap ArgbTextEncode(string input)
            {
                var x = 0;
                var y = 0;
                var lenth = input.Length;
                var yValue = (int)(Math.Sqrt(input.Length) + 1);
                var fill = (yValue * yValue) % (Encoding.Unicode.GetByteCount(input) / 4);
                input += input.Substring(Rnd.random.Next(input.Length - fill - 1), fill);
                var image = new Bitmap(yValue, yValue);
    
                //fill
                for (int i = 0; i < yValue * yValue; i++)
                {
                    if (i == lenth - 1)
                    {
                        image.SetPixel(x, y, Color.White);
                    }
                    else
                    {
                        byte[] bytes = Encoding.Unicode.GetBytes(input[i].ToString());
                        var prefix = 4 - bytes.Length;
                        bytes = Enumerable.Repeat<byte>(0, prefix).Concat(bytes).ToArray();
                        Encrypt(bytes);
                        image.SetPixel(x, y, Color.FromArgb(bytes[0], bytes[1], bytes[2], bytes[3]));
                    }
                    //Console.WriteLine("{0},{1} = {2}", x, y, input[i]);
                    x++;
                    if (x % yValue == 0)
                    {
                        x = 0;
                        y++;
                    }
                }
                return image;
            }
    

      

    找了一个日志文本,看看效果

    图片 3

     

    本文由金沙国际官网发布于编程,转载请注明出处:一种将文本编码为图片格式的方法,找出总分最

    关键词:

上一篇:pygame写贪吃蛇,的通讯方式总结

下一篇:没有了