Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 84


Previous 1060 Stories (530 Pages, 2 Per Page) Next

I am going to use ''a code obfuscation'' to prevent it from stealing. Are there

Go to all tips in Security

Question: I am going to use "a code obfuscation" to prevent it from stealing. Are there some recommendations to make my code even more protected?

Answer: Yes. Exist a few code obfuscation products, one of them is JProof.
Personally, I think that this product is one of the best tools that you can find today.
To achieve maximum bytecode protection level you can use several techniques that allow to do better protection with JProof:

  1. Make your methods and fields as much private as possible. Usually a lot of stuff does not need to be accessed from the other classes. The good style is to mark such stuff as private (by adding "private" modifier to the field or method declaration). Additionally, this will little bit improve your application's performance.
  2. If you can not make field or method private, try to make it "package". Simply do not use any of public, private or protected modifiers in field or method declaration statement, and they automatically will be marked as "package" by Java compiler. Note that both public and protected members can be referenced from the other packages.
  3. Minimize inter-package references. All of the inter-package interaction should be performed via public interfaces and public classes.
  4. If some classes in package do not referenced from other packages, remove the "public" modifier from their declarations. In this case, Java compiler will mark these classes as "package", and JProof will be able to rename them and hide their actual names. Note that non-public class can implement public interfaces and publish some methods.
  5. Change direct field access to set/get methods access. Mark a field as private and add two methods for getting and setting field. This will improve protection within the class. You can leave usual (direct) field access for "package" (no-modifier) fields.
  6. Implement "grouped" (joint) get/set methods where performance is not critical and where you need to make the best protection. To do this, add new method with one additional int parameter that will indicate which exactly action need to be performed. Mark methods called from within it as private. This will reduce the number of public methods. Sometimes this technique is called as "join methods". It is possible to join methods with similar signatures (not parameter names or sense) and add int "FnCode" parameter to new method's signature.
  7. Use resource bundles to hold string constants. This will improve the localizability of your software and will
    make more difficult human reverse-engineering.
  8. Try to decompile your software yourself with all known Java decompilers.
    This will help you to ensure that you are protected from most of Java decompilers. You can find a list of Java decompilers in the Decompilers section of "More Info" FAQ.
    You can find this tool at: http://www.jproof.com/index.html

*******************************************
Our older tips: March 22, 2001 - October 21, 2002 READ HERE
All published and not published on the site tips read HERE



79 comments | Printer Friendly Page  Send to a Friend | Score: 3
Posted by jalex on Monday, September 22, 2003 (00:00:00) (3634 reads)

How to do a POST Method from a java application instead of a html page?

Go to all tips in Networking

Question: How to do a POST Method from a java application instead of a html page?

Answer: Use com.oreilly.servlet.HttpMessage from O'Reilly, Java Servlet Programming book:
This class simplifies HTTP applet-server communication. It abstracts the communication into messages, which can be either GET or POST.

It can be used like this:

URL url = new URL(getCodeBase(), "/servlet/ServletName");

HttpMessage msg = new HttpMessage(url);

// Parameters may optionally be set using java.util.Properties
Properties props = new Properties();
props.put("name", "value");

// Headers, cookies, and authorization may be set as well
msg.setHeader("Accept", "image/png"); // optional
msg.setCookie("JSESSIONID", "9585155923883872"); // optional
msg.setAuthorization("guest", "try2gueSS"); // optional

InputStream in = msg.sendGetMessage(props);

*******************************************
Our older tips: March 22, 2001 - October 21, 2002 READ HERE
All published and not published on the site tips read HERE



23 comments | Printer Friendly Page  Send to a Friend | Score: 3
Posted by jalex on Friday, September 19, 2003 (00:00:00) (7047 reads)

Previous 1060 Stories (530 Pages, 2 Per Page) Next

530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182| 181| 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85|
84
| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy