首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx安全链接& java

Nginx安全链接& java
EN

Stack Overflow用户
提问于 2017-03-22 18:40:16
回答 1查看 431关注 0票数 0

我有一个项目,我需要从我的服务器上流式传输视频,我正在使用nginx来做这件事,也是使用spring mvc开发的webapp,以及tomcat来包含它。

它的工作原理:

java app生成md5散列链并将其发送给客户端进行请求,客户端向nginx服务器发出带有散列参数的请求,nginx服务器对散列值进行校验并拒绝处理。

下面是创建散列链接的java代码:

代码语言:javascript
复制
public static void main(String[] args) throws ParseException, NoSuchAlgorithmException {

    String fileName = "bbb.mp4";
    Date date = new Date(System.currentTimeMillis());
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    String monthName = getMonthForInt(month);
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    int hour = calendar.get(Calendar.HOUR_OF_DAY);
    int min = calendar.get(Calendar.MINUTE);

    System.out.println("year " +year +", month "+ month +",day " +day + ", hour " +hour +" min "+ min);

    String str = monthName +" "+ day+" "+year+" "+hour+":"+min+":52.454 UTC";
    SimpleDateFormat df = new SimpleDateFormat("MMM dd yyyy HH:mm:ss.SSS zzz");
    Date newDate = df.parse(str);
    long epoch = date.getTime();


    System.out.println(epoch);
    String input =  epoch +"/hls/"+fileName+" enigma";

    MessageDigest md = MessageDigest.getInstance("MD5");
    md.update(input.getBytes());
    byte[] enc = md.digest();
    String md5Sum = new sun.misc.BASE64Encoder().encode(enc);
    String hash = md5Sum.substring( 0,md5Sum.length() -2);

    String   link = "http://tutorme.ae/hls/"+fileName+"?md5="+hash+"&expires="+epoch;

    System.out.println(link);
}

输出应该是这样的:

http://tutorme.ae/hls/bbb.mp4?md5=D3U9uEtwHcgyNL3BeyfLsw&expires=1490178647610

所以这段代码工作了50%,另外50%它产生了一个更小的链接:

http://tutorme.ae/hls/bbb.mp4?md5=26k/bhvQP6JC1ehR+XmzuA&expires=1490178663810

我不知道它为什么这样做,而且线索会有帮助。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 19:04:51

很抱歉,我只是添加了下面这行代码来修复它:

代码语言:javascript
复制
         hash = hash.replace("/", "_");

在最后一行。我不知道原因,实际上只是因为linux命令行中的散列不同于java。如果有人能解释一下那就太好了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42949217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档